%-*-mode:outline;outline-regexp:"[0-9a-z.]+"-*-
. Semantics of dec
1. knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then knows_old(dec(X1,X2))
2. __type_26(dec(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then __type_26(dec(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(dec(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then __type_27(dec(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(dec(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then __type_13(dec(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(dec(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_25(dec(X1,X2))
      [where __type_25(X4) :- knows_current(cons(X4,cons(X1,nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(crypt(X2,key(sym,r_current(X4,X3)))).]
6. __def_22(dec(X1,X2)) :- __type_3(X1), __def_20(X2)
    If  __type_3 X1
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    then __def_22(dec(X1,X2))
      [where __def_22(dec(X3,passwd_old(X4,X1))) :- knows_old(cons(X4,cons(X2,nil))), knows_old(cons(X5,cons(X3,nil))).]
7. __def_83(dec(X1,X2)) :- __type_18(X1), __def_81(X2)
    If  __type_18 X1
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X2,X1)) :- knows_current(cons(X2,cons(X3,nil))).]
    then __def_83(dec(X1,X2))
      [where __def_83(dec(X3,passwd_current(X1,X4))) :- knows_current(cons(X1,cons(X5,nil))), knows_current(cons(X2,cons(X3,nil))).]
8. __type_24(dec(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_24(dec(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
9. __type_3(dec(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_3(dec(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
10. __type_12(dec(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then __type_12(dec(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
11. knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then knows_current(dec(X1,X2))
12. __type_28(dec(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then __type_28(dec(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
13. testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then testable_current(dec(X1,X2))
14. testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then testable_old(dec(X1,X2))
15. __type_18(dec(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_18(dec(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
16. __type_11(dec(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then __type_11(dec(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of passwd_current
1. __def_73(passwd_current(X1,X2)) :- agent(X1), agent(X2)
    If  agent X1
    and agent X2
    then __def_73(passwd_current(X1,X2))
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
2. __def_77(passwd_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_77(passwd_current(X1,X2))
      [where __def_77(passwd_current(X2,X3)) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))).]
3. __def_81(passwd_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_81(passwd_current(X1,X2))
      [where __def_81(passwd_current(X3,X1)) :- knows_current(cons(X3,cons(X2,nil))).]
. Semantics of session_current
1. __def_74(session_current(X1,X2)) :- agent(X1), agent(X2)
    If  agent X1
    and agent X2
    then __def_74(session_current(X1,X2))
      [where __def_74(session_current(X2,X1)) :- agent(X2), agent(X1).]
. Semantics of s
1. knows_old(s(X)) :- knows_old(X)
    If  knows_old X
    then knows_old(s(X))
2. __type_26(s(X)) :- testable_current(X)
    If  testable_current X
    then __type_26(s(X))
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(s(X)) :- testable_current(X)
    If  testable_current X
    then __type_27(s(X))
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(s(X)) :- testable_old(X)
    If  testable_old X
    then __type_13(s(X))
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(s(X)) :- knows_current(X)
    If  knows_current X
    then __type_25(s(X))
      [where __type_25(X1) :- knows_current(cons(X1,cons(X4,nil))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).]
6. __type_24(s(X)) :- knows_current(X)
    If  knows_current X
    then __type_24(s(X))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))).]
7. __type_3(s(X)) :- knows_old(X)
    If  knows_old X
    then __type_3(s(X))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
8. __type_12(s(X)) :- testable_old(X)
    If  testable_old X
    then __type_12(s(X))
      [where __type_12(X1) :- testable_old(X1).]
9. knows_current(s(X)) :- knows_current(X)
    If  knows_current X
    then knows_current(s(X))
10. __type_28(s(X)) :- testable_current(X)
    If  testable_current X
    then __type_28(s(X))
      [where __type_28(X1) :- testable_current(X1).]
11. testable_current(s(X)) :- testable_current(X)
    If  testable_current X
    then testable_current(s(X))
12. testable_old(s(X)) :- testable_old(X)
    If  testable_old X
    then testable_old(s(X))
13. __type_18(s(X)) :- knows_current(X)
    If  knows_current X
    then __type_18(s(X))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
14. __type_11(s(X)) :- testable_old(X)
    If  testable_old X
    then __type_11(s(X))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of nil
1. knows_old(nil)
2. __type_26(nil)
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(nil)
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(nil)
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(nil)
      [where __type_25(X3) :- knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))).]
6. __def_32(nil)
      [where __def_32(nil).]
7. __def_101(nil)
      [where __def_101(nil).]
8. __def_9(nil)
      [where __def_9(nil).]
9. __def_40(nil)
      [where __def_40(nil).]
10. __type_24(nil)
      [where __type_24(X3) :- knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X4)),nil))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))).]
11. __type_3(nil)
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
12. __type_12(nil)
      [where __type_12(X1) :- testable_old(X1).]
13. knows_current(nil)
14. __type_28(nil)
      [where __type_28(X1) :- testable_current(X1).]
15. __def_93(nil)
      [where __def_93(nil).]
16. testable_current(nil)
17. testable_old(nil)
18. __type_18(nil)
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
19. __type_11(nil)
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of nonceb_old
1. __type_26(nonceb_old(X1,X2))
    then __type_26(nonceb_old(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
2. __type_27(nonceb_old(X1,X2))
    then __type_27(nonceb_old(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
3. __type_25(nonceb_old(X1,X2))
    then __type_25(nonceb_old(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))).]
4. __def_31(nonceb_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_31(nonceb_old(X1,X2))
      [where __def_31(nonceb_old(X4,X1)) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
5. __type_24(nonceb_old(X1,X2))
    then __type_24(nonceb_old(X1,X2))
      [where __type_24(X3) :- knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X4)),nil))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))).]
6. __type_5(nonceb_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_5(nonceb_old(X1,X2))
      [where __type_5(X3) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
7. __type_6(nonceb_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_6(nonceb_old(X1,X2))
      [where __type_6(X3) :- knows_old(cons(X4,cons(X2,nil))), knows_old(crypt(X3,key(sym,r_old(X4,X1)))).]
8. __def_39(nonceb_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_39(nonceb_old(X1,X2))
      [where __def_39(nonceb_old(X2,X4)) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(X3,nil))).]
9. knows_current(nonceb_old(X1,X2))
    then knows_current(nonceb_old(X1,X2))
10. __type_28(nonceb_old(X1,X2))
    then __type_28(nonceb_old(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
11. __type_7(nonceb_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_7(nonceb_old(X1,X2))
      [where __type_7(X1) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).]
12. testable_current(nonceb_old(X1,X2))
    then testable_current(nonceb_old(X1,X2))
13. __type_18(nonceb_old(X1,X2))
    then __type_18(nonceb_old(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
. Semantics of i
1. knows_old(i)
2. __type_26(i)
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(i)
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(i)
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(i)
      [where __type_25(X2) :- knows_current(crypt(X4,key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(X3,nil))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))).]
6. __type_29(i)
      [where __type_29(X2) :- knows_current(crypt(X1,key(pub,X2))), testable_current(X1).]
7. __def_4(i)
      [where __def_4(X1) :- knows_old(key(pub,X1)).]
8. __type_30(i)
      [where __type_30(X2) :- knows_current(crypt(X1,key(prv,X2))), testable_current(X1).]
9. __def_67(i)
      [where __def_67(X1) :- knows_current(key(pub,X1)).]
10. __type_24(i)
      [where __type_24(X4) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X3)),nil))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))).]
11. agent(i)
12. __def_65(i)
      [where __def_65(X1) :- knows_current(key(prv,X1)).]
13. __type_1(i)
      [where __type_1(X1) :- agent(X1).]
14. __type_3(i)
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
15. __type_12(i)
      [where __type_12(X1) :- testable_old(X1).]
16. knows_current(i)
17. __type_28(i)
      [where __type_28(X1) :- testable_current(X1).]
18. __def_63(i)
      [where __def_63(i).]
19. __def_2(i)
      [where __def_2(X1) :- knows_old(key(prv,X1)).]
20. testable_current(i)
21. testable_old(i)
22. __type_15(i)
      [where __type_15(X1) :- testable_old(X2), knows_old(crypt(X2,key(prv,X1))).]
23. __type_14(i)
      [where __type_14(X1) :- testable_old(X2), knows_old(crypt(X2,key(pub,X1))).]
24. __type_18(i)
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
25. __type_11(i)
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of r_old
1. __type_26(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_26(r_old(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
2. __def_42(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_42(r_old(X1,X2))
      [where __def_42(r_old(X1,X3)) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(X4,nil))).]
3. __type_27(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_27(r_old(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
4. __def_34(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_34(r_old(X1,X2))
      [where __def_34(r_old(X4,X1)) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
5. __def_50(r_old(X1,X2))
    then __def_50(r_old(X1,X2))
      [where __def_50(r_old(X1,X2)) :- knows_old(cons(X1,cons(X4,nil))), knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))).]
6. __def_48(r_old(X1,X2))
    then __def_48(r_old(X1,X2))
      [where __def_48(r_old(X2,X1)) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))), knows_old(crypt(X4,key(sym,r_old(X2,X1)))), knows_old(crypt(nonceb_old(X2,X1),key(sym,r_old(X2,X1)))).]
7. __type_8(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_8(r_old(X1,X2))
      [where __type_8(X3) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))), knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))).]
8. __type_31(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_31(r_old(X1,X2))
      [where __type_31(X1) :- testable_current(X2), knows_current(crypt(X2,key(sym,X1))).]
9. __def_17(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_17(r_old(X1,X2))
      [where __def_17(r_old(X1,X3)) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
10. __type_16(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_16(r_old(X1,X2))
      [where __type_16(X1) :- testable_old(X2), knows_old(crypt(X2,key(sym,X1))).]
11. __type_28(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_28(r_old(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
12. __def_21(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_21(r_old(X1,X2))
      [where __def_21(r_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
13. __type_4(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __type_4(r_old(X1,X2))
      [where __type_4(X1) :- knows_old(enc(crypt(X1,key(pub,session_old(X3,X2))),passwd_old(X3,X2))).]
14. testable_current(r_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then testable_current(r_old(X1,X2))
. Semantics of p
1. knows_old(p(X)) :- knows_old(X)
    If  knows_old X
    then knows_old(p(X))
2. __type_26(p(X)) :- testable_current(X)
    If  testable_current X
    then __type_26(p(X))
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(p(X)) :- testable_current(X)
    If  testable_current X
    then __type_27(p(X))
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(p(X)) :- testable_old(X)
    If  testable_old X
    then __type_13(p(X))
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(p(X)) :- knows_current(X)
    If  knows_current X
    then __type_25(p(X))
      [where __type_25(X2) :- knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))), knows_current(crypt(X4,key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(X3,nil))).]
6. __type_24(p(X)) :- knows_current(X)
    If  knows_current X
    then __type_24(p(X))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))).]
7. __type_3(p(X)) :- knows_old(X)
    If  knows_old X
    then __type_3(p(X))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
8. __type_12(p(X)) :- testable_old(X)
    If  testable_old X
    then __type_12(p(X))
      [where __type_12(X1) :- testable_old(X1).]
9. knows_current(p(X)) :- knows_current(X)
    If  knows_current X
    then knows_current(p(X))
10. __type_28(p(X)) :- testable_current(X)
    If  testable_current X
    then __type_28(p(X))
      [where __type_28(X1) :- testable_current(X1).]
11. testable_current(p(X)) :- testable_current(X)
    If  testable_current X
    then testable_current(p(X))
12. testable_old(p(X)) :- testable_old(X)
    If  testable_old X
    then testable_old(p(X))
13. __type_18(p(X)) :- knows_current(X)
    If  knows_current X
    then __type_18(p(X))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
14. __type_11(p(X)) :- testable_old(X)
    If  testable_old X
    then __type_11(p(X))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of key
1. knows_old(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then knows_old(key(X1,X2))
2. knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2)
    If  __def_62 X1
      [where __def_62(prv).]
    and __def_63 X2
      [where __def_63(i).]
    then knows_old(key(X1,X2))
3. __type_26(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_26(key(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
4. __type_26(key(X1,X2)) :- __def_121(X1), __type_31(X2)
    If  __def_121 X1
      [where __def_121(sym).]
    and __type_31 X2
      [where __type_31(X2) :- testable_current(X1), knows_current(crypt(X1,key(sym,X2))).]
    then __type_26(key(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
5. __type_26(key(X1,X2)) :- __def_118(X1), __type_29(X2)
    If  __def_118 X1
      [where __def_118(prv).]
    and __type_29 X2
      [where __type_29(X1) :- knows_current(crypt(X2,key(pub,X1))), testable_current(X2).]
    then __type_26(key(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
6. __type_26(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_26(key(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
7. __type_27(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_27(key(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
8. __type_27(key(X1,X2)) :- __def_121(X1), __type_31(X2)
    If  __def_121 X1
      [where __def_121(sym).]
    and __type_31 X2
      [where __type_31(X2) :- testable_current(X1), knows_current(crypt(X1,key(sym,X2))).]
    then __type_27(key(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
9. __type_27(key(X1,X2)) :- __def_118(X1), __type_29(X2)
    If  __def_118 X1
      [where __def_118(prv).]
    and __type_29 X2
      [where __type_29(X2) :- testable_current(X1), knows_current(crypt(X1,key(pub,X2))).]
    then __type_27(key(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
10. __type_27(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_27(key(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
11. __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __def_10(key(X1,X2))
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X1), agent(X2).]
12. __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2)
    If  __def_33 X1
      [where __def_33(sym).]
    and __def_34 X2
      [where __def_34(r_old(X3,X2)) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    then __def_29(key(X1,X2))
      [where __def_29(key(sym,r_old(X1,X3))) :- knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).]
13. __type_13(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_13(key(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
14. __type_13(key(X1,X2)) :- __def_61(X1), __type_16(X2)
    If  __def_61 X1
      [where __def_61(sym).]
    and __type_16 X2
      [where __type_16(X1) :- knows_old(crypt(X2,key(sym,X1))), testable_old(X2).]
    then __type_13(key(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
15. __type_13(key(X1,X2)) :- __def_58(X1), __type_14(X2)
    If  __def_58 X1
      [where __def_58(prv).]
    and __type_14 X2
      [where __type_14(X1) :- testable_old(X2), knows_old(crypt(X2,key(pub,X1))).]
    then __type_13(key(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
16. __type_25(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_25(key(X1,X2))
      [where __type_25(X4) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))).]
17. __type_25(key(X1,X2)) :- __def_62(X1), __def_63(X2)
    If  __def_62 X1
      [where __def_62(prv).]
    and __def_63 X2
      [where __def_63(i).]
    then __type_25(key(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))).]
18. __type_25(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_25(key(X1,X2))
      [where __type_25(X4) :- knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))).]
19. __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2)
    If  __def_26 X1
      [where __def_26(sym).]
    and __type_4 X2
      [where __type_4(X3) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then __def_25(key(X1,X2))
      [where __def_25(key(sym,X3)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
20. __def_52(key(X1,X2)) :- __def_53(X1), __def_2(X2)
    If  __def_53 X1
      [where __def_53(pub).]
    and __def_2 X2
      [where __def_2(X1) :- knows_old(key(prv,X1)).]
    then __def_52(key(X1,X2))
      [where __def_52(key(pub,X1)) :- knows_old(key(prv,X1)).]
21. __def_112(key(X1,X2)) :- __def_113(X1), __def_65(X2)
    If  __def_113 X1
      [where __def_113(pub).]
    and __def_65 X2
      [where __def_65(X1) :- knows_current(key(prv,X1)).]
    then __def_112(key(X1,X2))
      [where __def_112(key(pub,X1)) :- knows_current(key(prv,X1)).]
22. __type_17(key(X1,X2)) :- __def_12(X1), __def_74(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_74 X2
      [where __def_74(session_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_17(key(X1,X2))
      [where __type_17(X2) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
23. __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2)
    If  __def_106 X1
      [where __def_106(sym).]
    and __type_23 X2
      [where __type_23(X4) :- knows_current(crypt(cons(noncea_current(X2,X1),cons(X3,nil)),key(sym,X4))), knows_current(enc(crypt(X4,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    then __def_105(key(X1,X2))
      [where __def_105(key(sym,X2)) :- knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).]
24. __def_72(key(X1,X2)) :- __def_12(X1), __def_74(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_74 X2
      [where __def_74(session_current(X2,X1)) :- agent(X2), agent(X1).]
    then __def_72(key(X1,X2))
      [where __def_72(key(pub,session_current(X1,X2))) :- agent(X1), agent(X2).]
25. __type_24(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_24(key(X1,X2))
      [where __type_24(X2) :- knows_current(crypt(X4,key(sym,r_current(X2,X1)))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))).]
26. __type_24(key(X1,X2)) :- __def_62(X1), __def_63(X2)
    If  __def_62 X1
      [where __def_62(prv).]
    and __def_63 X2
      [where __def_63(i).]
    then __type_24(key(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
27. __type_24(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_24(key(X1,X2))
      [where __type_24(X4) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X3)),nil))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))).]
28. __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2)
    If  __def_45 X1
      [where __def_45(sym).]
    and __type_8 X2
      [where __type_8(X4) :- knows_old(enc(crypt(X4,key(pub,session_old(X2,X1))),passwd_old(X2,X1))), knows_old(crypt(cons(noncea_old(X2,X1),cons(X3,nil)),key(sym,X4))).]
    then __def_44(key(X1,X2))
      [where __def_44(key(sym,X2)) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).]
29. __def_37(key(X1,X2)) :- __def_41(X1), __def_42(X2)
    If  __def_41 X1
      [where __def_41(sym).]
    and __def_42 X2
      [where __def_42(r_old(X2,X4)) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(X3,nil))).]
    then __def_37(key(X1,X2))
      [where __def_37(key(sym,r_old(X4,X1))) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(X2,nil))).]
30. __def_114(key(X1,X2)) :- __def_115(X1), __def_67(X2)
    If  __def_115 X1
      [where __def_115(prv).]
    and __def_67 X2
      [where __def_67(X1) :- knows_current(key(pub,X1)).]
    then __def_114(key(X1,X2))
      [where __def_114(key(prv,X1)) :- knows_current(key(pub,X1)).]
31. __type_3(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_3(key(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
32. __type_3(key(X1,X2)) :- __def_62(X1), __def_63(X2)
    If  __def_62 X1
      [where __def_62(prv).]
    and __def_63 X2
      [where __def_63(i).]
    then __type_3(key(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
33. __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_2(key(X1,X2))
      [where __type_2(X2) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
34. __type_12(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_12(key(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
35. __type_12(key(X1,X2)) :- __def_61(X1), __type_16(X2)
    If  __def_61 X1
      [where __def_61(sym).]
    and __type_16 X2
      [where __type_16(X2) :- testable_old(X1), knows_old(crypt(X1,key(sym,X2))).]
    then __type_12(key(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
36. __type_12(key(X1,X2)) :- __def_58(X1), __type_14(X2)
    If  __def_58 X1
      [where __def_58(prv).]
    and __type_14 X2
      [where __type_14(X2) :- testable_old(X1), knows_old(crypt(X1,key(pub,X2))).]
    then __type_12(key(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
37. knows_current(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then knows_current(key(X1,X2))
38. knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2)
    If  __def_62 X1
      [where __def_62(prv).]
    and __def_63 X2
      [where __def_63(i).]
    then knows_current(key(X1,X2))
39. knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then knows_current(key(X1,X2))
40. __type_28(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_28(key(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
41. __type_28(key(X1,X2)) :- __def_121(X1), __type_31(X2)
    If  __def_121 X1
      [where __def_121(sym).]
    and __type_31 X2
      [where __type_31(X2) :- testable_current(X1), knows_current(crypt(X1,key(sym,X2))).]
    then __type_28(key(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
42. __type_28(key(X1,X2)) :- __def_118(X1), __type_29(X2)
    If  __def_118 X1
      [where __def_118(prv).]
    and __type_29 X2
      [where __type_29(X2) :- testable_current(X1), knows_current(crypt(X1,key(pub,X2))).]
    then __type_28(key(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
43. __type_28(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_28(key(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
44. testable_current(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then testable_current(key(X1,X2))
45. testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2)
    If  __def_121 X1
      [where __def_121(sym).]
    and __type_31 X2
      [where __type_31(X1) :- testable_current(X2), knows_current(crypt(X2,key(sym,X1))).]
    then testable_current(key(X1,X2))
46. testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2)
    If  __def_118 X1
      [where __def_118(prv).]
    and __type_29 X2
      [where __type_29(X1) :- testable_current(X2), knows_current(crypt(X2,key(pub,X1))).]
    then testable_current(key(X1,X2))
47. testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then testable_current(key(X1,X2))
48. testable_old(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then testable_old(key(X1,X2))
49. testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2)
    If  __def_61 X1
      [where __def_61(sym).]
    and __type_16 X2
      [where __type_16(X1) :- testable_old(X2), knows_old(crypt(X2,key(sym,X1))).]
    then testable_old(key(X1,X2))
50. testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2)
    If  __def_58 X1
      [where __def_58(prv).]
    and __type_14 X2
      [where __type_14(X2) :- testable_old(X1), knows_old(crypt(X1,key(pub,X2))).]
    then testable_old(key(X1,X2))
51. __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2)
    If  __def_102 X1
      [where __def_102(sym).]
    and __def_103 X2
      [where __def_103(r_current(X4,X1)) :- knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(X3,key(sym,r_current(X4,X1)))).]
    then __def_98(key(X1,X2))
      [where __def_98(key(sym,r_current(X1,X3))) :- knows_current(cons(X1,cons(X4,nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).]
52. __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2)
    If  __def_87 X1
      [where __def_87(sym).]
    and __type_19 X2
      [where __type_19(X1) :- knows_current(enc(crypt(X1,key(pub,session_current(X2,X3))),passwd_current(X2,X3))).]
    then __def_86(key(X1,X2))
      [where __def_86(key(sym,X3)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
53. __def_54(key(X1,X2)) :- __def_55(X1), __def_4(X2)
    If  __def_55 X1
      [where __def_55(prv).]
    and __def_4 X2
      [where __def_4(X1) :- knows_old(key(pub,X1)).]
    then __def_54(key(X1,X2))
      [where __def_54(key(prv,X1)) :- knows_old(key(pub,X1)).]
54. __type_18(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_18(key(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
55. __type_18(key(X1,X2)) :- __def_62(X1), __def_63(X2)
    If  __def_62 X1
      [where __def_62(prv).]
    and __def_63 X2
      [where __def_63(i).]
    then __type_18(key(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
56. __type_18(key(X1,X2)) :- __def_12(X1), __def_13(X2)
    If  __def_12 X1
      [where __def_12(pub).]
    and __def_13 X2
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_18(key(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
57. __def_90(key(X1,X2)) :- __def_94(X1), __def_95(X2)
    If  __def_94 X1
      [where __def_94(sym).]
    and __def_95 X2
      [where __def_95(r_current(X4,X1)) :- knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X1)),nil))), knows_current(crypt(X3,key(sym,r_current(X4,X1)))).]
    then __def_90(key(X1,X2))
      [where __def_90(key(sym,r_current(X2,X4))) :- knows_current(crypt(X1,key(sym,r_current(X2,X4)))), knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X4)),nil))).]
58. __type_11(key(X1,X2)) :- __def_51(X1), agent(X2)
    If  __def_51 X1
      [where __def_51(pub).]
    and agent X2
    then __type_11(key(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
59. __type_11(key(X1,X2)) :- __def_61(X1), __type_16(X2)
    If  __def_61 X1
      [where __def_61(sym).]
    and __type_16 X2
      [where __type_16(X1) :- testable_old(X2), knows_old(crypt(X2,key(sym,X1))).]
    then __type_11(key(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
60. __type_11(key(X1,X2)) :- __def_58(X1), __type_14(X2)
    If  __def_58 X1
      [where __def_58(prv).]
    and __type_14 X2
      [where __type_14(X1) :- testable_old(X2), knows_old(crypt(X2,key(pub,X1))).]
    then __type_11(key(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of session_old
1. __type_29(session_old(X1,X2)) :- agent(X1), agent(X2)
    If  agent X1
    and agent X2
    then __type_29(session_old(X1,X2))
      [where __type_29(X1) :- testable_current(X2), knows_current(crypt(X2,key(pub,X1))).]
2. __def_67(session_old(X1,X2)) :- agent(X1), agent(X2)
    If  agent X1
    and agent X2
    then __def_67(session_old(X1,X2))
      [where __def_67(X1) :- knows_current(key(pub,X1)).]
3. __def_13(session_old(X1,X2)) :- agent(X1), agent(X2)
    If  agent X1
    and agent X2
    then __def_13(session_old(X1,X2))
      [where __def_13(session_old(X2,X1)) :- agent(X2), agent(X1).]
. Semantics of cons
1. knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then knows_old(cons(X1,X2))
2. __type_26(cons(X1,X2)) :- testable_current(X1)
    If  testable_current X1
    then __type_26(cons(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
3. __type_26(cons(X1,X2)) :- testable_current(X2)
    If  testable_current X2
    then __type_26(cons(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
4. __type_27(cons(X1,X2)) :- testable_current(X1)
    If  testable_current X1
    then __type_27(cons(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
5. __type_27(cons(X1,X2)) :- testable_current(X2)
    If  testable_current X2
    then __type_27(cons(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
6. __type_13(cons(X1,X2)) :- testable_old(X1)
    If  testable_old X1
    then __type_13(cons(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
7. __type_13(cons(X1,X2)) :- testable_old(X2)
    If  testable_old X2
    then __type_13(cons(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
8. __type_25(cons(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_25(cons(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))).]
9. __def_91(cons(X1,X2)) :- __def_92(X1), __def_93(X2)
    If  __def_92 X1
      [where __def_92(nonceb_current(X2,X4)) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X4)),nil))), knows_current(crypt(X1,key(sym,r_current(X2,X4)))).]
    and __def_93 X2
      [where __def_93(nil).]
    then __def_91(cons(X1,X2))
      [where __def_91(cons(nonceb_current(X4,X1),nil)) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X1)),nil))).]
10. __def_89(cons(X1,X2)) :- __type_20(X1), __def_91(X2)
    If  __type_20 X1
      [where __type_20(X4) :- knows_current(crypt(X4,key(sym,r_current(X3,X2)))), knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X2)),nil))).]
    and __def_91 X2
      [where __def_91(cons(nonceb_current(X1,X3),nil)) :- knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).]
    then __def_89(cons(X1,X2))
      [where __def_89(cons(X4,cons(nonceb_current(X8,X5),nil))) :- knows_current(crypt(X7,key(sym,r_current(X8,X5)))), knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X2)),nil))), knows_current(cons(X8,cons(enc(X6,passwd_current(X8,X5)),nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))).]
11. __def_7(cons(X1,X2)) :- __def_8(X1), __def_9(X2)
    If  __def_8 X1
      [where __def_8(enc(key(pub,session_old(X4,X2)),passwd_old(X3,X1))) :- agent(X2), agent(X1), agent(X4), agent(X3).]
    and __def_9 X2
      [where __def_9(nil).]
    then __def_7(cons(X1,X2))
      [where __def_7(cons(enc(key(pub,session_old(X3,X1)),passwd_old(X4,X2)),nil)) :- agent(X4), agent(X1), agent(X3), agent(X2).]
12. __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2)
    If  __def_31 X1
      [where __def_31(nonceb_old(X3,X2)) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    and __def_32 X2
      [where __def_32(nil).]
    then __def_30(cons(X1,X2))
      [where __def_30(cons(nonceb_old(X1,X3),nil)) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).]
13. __type_24(cons(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_24(cons(X1,X2))
      [where __type_24(X2) :- knows_current(crypt(X4,key(sym,r_current(X2,X1)))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))).]
14. __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2)
    If  __type_5 X1
      [where __type_5(X1) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))), knows_old(crypt(X1,key(sym,r_old(X2,X4)))).]
    and __def_30 X2
      [where __def_30(cons(nonceb_old(X3,X2),nil)) :- knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))), knows_old(crypt(X4,key(sym,r_old(X3,X2)))).]
    then __def_28(cons(X1,X2))
      [where __def_28(cons(X6,cons(nonceb_old(X4,X1),nil))) :- knows_old(cons(X5,cons(enc(X8,passwd_old(X5,X7)),nil))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))), knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(crypt(X6,key(sym,r_old(X5,X7)))).]
15. __type_5(cons(X1,X2)) :- __type_5(X1), __def_30(X2)
    If  __type_5 X1
      [where __type_5(X4) :- knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))), knows_old(crypt(X4,key(sym,r_old(X3,X2)))).]
    and __def_30 X2
      [where __def_30(cons(nonceb_old(X3,X2),nil)) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    then __type_5(cons(X1,X2))
      [where __type_5(X3) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
16. __def_70(cons(X1,X2)) :- __def_71(X1), __def_9(X2)
    If  __def_71 X1
      [where __def_71(enc(key(pub,session_current(X2,X4)),passwd_current(X1,X3))) :- agent(X4), agent(X1), agent(X3), agent(X2).]
    and __def_9 X2
      [where __def_9(nil).]
    then __def_70(cons(X1,X2))
      [where __def_70(cons(enc(key(pub,session_current(X2,X3)),passwd_current(X1,X4)),nil)) :- agent(X4), agent(X3), agent(X1), agent(X2).]
17. __type_3(cons(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_3(cons(X1,X2))
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
18. __type_6(cons(X1,X2)) :- __type_5(X1), __def_30(X2)
    If  __type_5 X1
      [where __type_5(X4) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    and __def_30 X2
      [where __def_30(cons(nonceb_old(X1,X3),nil)) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).]
    then __type_6(cons(X1,X2))
      [where __type_6(X2) :- knows_old(cons(X1,cons(X4,nil))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).]
19. __type_12(cons(X1,X2)) :- testable_old(X1)
    If  testable_old X1
    then __type_12(cons(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
20. __type_12(cons(X1,X2)) :- testable_old(X2)
    If  testable_old X2
    then __type_12(cons(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
21. knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then knows_current(cons(X1,X2))
22. __def_38(cons(X1,X2)) :- __def_39(X1), __def_40(X2)
    If  __def_39 X1
      [where __def_39(nonceb_old(X2,X4)) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(X3,nil))).]
    and __def_40 X2
      [where __def_40(nil).]
    then __def_38(cons(X1,X2))
      [where __def_38(cons(nonceb_old(X2,X4),nil)) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(X3,nil))).]
23. __type_28(cons(X1,X2)) :- testable_current(X1)
    If  testable_current X1
    then __type_28(cons(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
24. __type_28(cons(X1,X2)) :- testable_current(X2)
    If  testable_current X2
    then __type_28(cons(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
25. __def_36(cons(X1,X2)) :- __type_6(X1), __def_38(X2)
    If  __type_6 X1
      [where __type_6(X3) :- knows_old(cons(X4,cons(X2,nil))), knows_old(crypt(X3,key(sym,r_old(X4,X1)))).]
    and __def_38 X2
      [where __def_38(cons(nonceb_old(X2,X4),nil)) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(X3,nil))).]
    then __def_36(cons(X1,X2))
      [where __def_36(cons(X2,cons(nonceb_old(X7,X6),nil))) :- knows_old(crypt(X8,key(sym,r_old(X7,X6)))), knows_old(cons(X7,cons(X5,nil))), knows_old(cons(X1,cons(X4,nil))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).]
26. __type_20(cons(X1,X2)) :- __type_20(X1), __def_91(X2)
    If  __type_20 X1
      [where __type_20(X4) :- knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X2)),nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))).]
    and __def_91 X2
      [where __def_91(cons(nonceb_current(X1,X3),nil)) :- knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).]
    then __type_20(cons(X1,X2))
      [where __type_20(X1) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X4)),nil))), knows_current(crypt(X1,key(sym,r_current(X2,X4)))).]
27. __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2)
    If  __def_100 X1
      [where __def_100(nonceb_current(X2,X4)) :- knows_current(crypt(X1,key(sym,r_current(X2,X4)))), knows_current(cons(X2,cons(X3,nil))).]
    and __def_101 X2
      [where __def_101(nil).]
    then __def_99(cons(X1,X2))
      [where __def_99(cons(nonceb_current(X2,X4),nil)) :- knows_current(cons(X2,cons(X3,nil))), knows_current(crypt(X1,key(sym,r_current(X2,X4)))).]
28. testable_current(cons(X1,X2)) :- testable_current(X1)
    If  testable_current X1
    then testable_current(cons(X1,X2))
29. testable_current(cons(X1,X2)) :- testable_current(X2)
    If  testable_current X2
    then testable_current(cons(X1,X2))
30. testable_old(cons(X1,X2)) :- testable_old(X1)
    If  testable_old X1
    then testable_old(cons(X1,X2))
31. testable_old(cons(X1,X2)) :- testable_old(X2)
    If  testable_old X2
    then testable_old(cons(X1,X2))
32. __type_21(cons(X1,X2)) :- __type_20(X1), __def_91(X2)
    If  __type_20 X1
      [where __type_20(X4) :- knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X2)),nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))).]
    and __def_91 X2
      [where __def_91(cons(nonceb_current(X3,X2),nil)) :- knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X2)),nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))).]
    then __type_21(cons(X1,X2))
      [where __type_21(X3) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(X2,nil))).]
33. __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2)
    If  __type_21 X1
      [where __type_21(X2) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).]
    and __def_99 X2
      [where __def_99(cons(nonceb_current(X4,X1),nil)) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(X2,nil))).]
    then __def_97(cons(X1,X2))
      [where __def_97(cons(X8,cons(nonceb_current(X1,X5),nil))) :- knows_current(cons(X1,cons(X7,nil))), knows_current(crypt(X3,key(sym,r_current(X1,X5)))), knows_current(crypt(X8,key(sym,r_current(X6,X4)))), knows_current(cons(X6,cons(X2,nil))).]
34. __type_18(cons(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_18(cons(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
35. __type_11(cons(X1,X2)) :- testable_old(X1)
    If  testable_old X1
    then __type_11(cons(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
36. __type_11(cons(X1,X2)) :- testable_old(X2)
    If  testable_old X2
    then __type_11(cons(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of crypt
1. knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X2,cons(nonceb_old(X7,X6),nil))) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))), knows_old(crypt(X8,key(sym,r_old(X7,X6)))), knows_old(cons(X7,cons(enc(X5,passwd_old(X7,X6)),nil))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X2,X4))) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))).]
    then knows_old(crypt(X1,X2))
2. knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X3,X1)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X1,X3))),passwd_old(X1,X3))).]
    then knows_old(crypt(X1,X2))
3. knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X1) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).]
    and __def_44 X2
      [where __def_44(key(sym,X4)) :- knows_old(crypt(cons(noncea_old(X2,X1),cons(X3,nil)),key(sym,X4))), knows_old(enc(crypt(X4,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then knows_old(crypt(X1,X2))
4. knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then knows_old(crypt(X1,X2))
5. __type_26(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X3) :- knows_current(crypt(cons(noncea_current(X2,X1),cons(X3,nil)),key(sym,X4))), knows_current(enc(crypt(X4,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    and __def_105 X2
      [where __def_105(key(sym,X4)) :- knows_current(enc(crypt(X4,key(pub,session_current(X2,X1))),passwd_current(X2,X1))), knows_current(crypt(cons(noncea_current(X2,X1),cons(X3,nil)),key(sym,X4))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
6. __type_26(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X3,cons(nonceb_old(X8,X5),nil))) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X8,cons(enc(X6,passwd_old(X8,X5)),nil))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))), knows_old(crypt(X7,key(sym,r_old(X8,X5)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X4,X1))) :- knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))), knows_old(crypt(X3,key(sym,r_old(X4,X1)))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
7. __type_26(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X1,X3)) :- knows_current(enc(crypt(X2,key(pub,session_current(X1,X3))),passwd_current(X1,X3))).]
    and __def_86 X2
      [where __def_86(key(sym,X3)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
8. __type_26(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X2,X3)) :- knows_old(cons(X2,cons(X1,nil))).]
    and __def_22 X2
      [where __def_22(dec(X1,passwd_old(X5,X3))) :- knows_old(cons(X4,cons(X1,nil))), knows_old(cons(X5,cons(X2,nil))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
9. __type_26(crypt(X1,X2)) :- __type_27(X1), __def_114(X2)
    If  __type_27 X1
      [where __type_27(X1) :- testable_current(X1).]
    and __def_114 X2
      [where __def_114(key(prv,X1)) :- knows_current(key(pub,X1)).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
10. __type_26(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X3,X1)) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
    and __type_2 X2
      [where __type_2(X2) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
11. __type_26(crypt(X1,X2)) :- __type_26(X1), __def_112(X2)
    If  __type_26 X1
      [where __type_26(X1) :- testable_current(X1).]
    and __def_112 X2
      [where __def_112(key(pub,X1)) :- knows_current(key(prv,X1)).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
12. __type_26(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X2,X1)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X1)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
13. __type_26(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X1) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).]
    and __def_44 X2
      [where __def_44(key(sym,X4)) :- knows_old(crypt(cons(noncea_old(X2,X1),cons(X3,nil)),key(sym,X4))), knows_old(enc(crypt(X4,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
14. __type_26(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X3,cons(nonceb_current(X8,X5),nil))) :- knows_current(cons(X8,cons(X6,nil))), knows_current(crypt(X3,key(sym,r_current(X4,X2)))), knows_current(crypt(X7,key(sym,r_current(X8,X5)))), knows_current(cons(X4,cons(X1,nil))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X2,X1))) :- knows_current(crypt(X3,key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(X4,nil))).]
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
15. __type_26(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_26(crypt(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
16. __type_27(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X2) :- knows_current(enc(crypt(X1,key(pub,session_current(X4,X3))),passwd_current(X4,X3))), knows_current(crypt(cons(noncea_current(X4,X3),cons(X2,nil)),key(sym,X1))).]
    and __def_105 X2
      [where __def_105(key(sym,X4)) :- knows_current(enc(crypt(X4,key(pub,session_current(X2,X1))),passwd_current(X2,X1))), knows_current(crypt(cons(noncea_current(X2,X1),cons(X3,nil)),key(sym,X4))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
17. __type_27(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X3,cons(nonceb_old(X6,X8),nil))) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X4)),nil))), knows_old(crypt(X3,key(sym,r_old(X1,X4)))), knows_old(cons(X6,cons(enc(X7,passwd_old(X6,X8)),nil))), knows_old(crypt(X5,key(sym,r_old(X6,X8)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X4,X1))) :- knows_old(crypt(X2,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X3,passwd_old(X4,X1)),nil))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
18. __type_27(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X1,X3)) :- knows_current(enc(crypt(X2,key(pub,session_current(X1,X3))),passwd_current(X1,X3))).]
    and __def_86 X2
      [where __def_86(key(sym,X2)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X1))),passwd_current(X3,X1))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
19. __type_27(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    and __def_22 X2
      [where __def_22(dec(X1,passwd_old(X5,X2))) :- knows_old(cons(X5,cons(X3,nil))), knows_old(cons(X4,cons(X1,nil))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
20. __type_27(crypt(X1,X2)) :- __type_27(X1), __def_114(X2)
    If  __type_27 X1
      [where __type_27(X1) :- testable_current(X1).]
    and __def_114 X2
      [where __def_114(key(prv,X1)) :- knows_current(key(pub,X1)).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
21. __type_27(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X2,X1)) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    and __type_2 X2
      [where __type_2(X2) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
22. __type_27(crypt(X1,X2)) :- __type_26(X1), __def_112(X2)
    If  __type_26 X1
      [where __type_26(X1) :- testable_current(X1).]
    and __def_112 X2
      [where __def_112(key(pub,X1)) :- knows_current(key(prv,X1)).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
23. __type_27(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X3,X1)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
24. __type_27(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X4) :- knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))), knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    and __def_44 X2
      [where __def_44(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
25. __type_27(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X2,cons(nonceb_current(X6,X8),nil))) :- knows_current(cons(X6,cons(X7,nil))), knows_current(crypt(X5,key(sym,r_current(X6,X8)))), knows_current(cons(X1,cons(X4,nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X1,X2))) :- knows_current(cons(X1,cons(X3,nil))), knows_current(crypt(X4,key(sym,r_current(X1,X2)))).]
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
26. __type_27(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_27(crypt(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
27. __type_13(crypt(X1,X2)) :- __type_12(X1), __def_54(X2)
    If  __type_12 X1
      [where __type_12(X1) :- testable_old(X1).]
    and __def_54 X2
      [where __def_54(key(prv,X1)) :- knows_old(key(pub,X1)).]
    then __type_13(crypt(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
28. __type_13(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X2,cons(nonceb_old(X4,X7),nil))) :- knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X6)),nil))), knows_old(crypt(X2,key(sym,r_old(X1,X6)))), knows_old(cons(X4,cons(enc(X8,passwd_old(X4,X7)),nil))), knows_old(crypt(X5,key(sym,r_old(X4,X7)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X2,X4))) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))), knows_old(crypt(X1,key(sym,r_old(X2,X4)))).]
    then __type_13(crypt(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
29. __type_13(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X3,X1)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    then __type_13(crypt(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
30. __type_13(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X4) :- knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))), knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    and __def_44 X2
      [where __def_44(key(sym,X2)) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).]
    then __type_13(crypt(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
31. __type_13(crypt(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_13(crypt(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
32. __type_13(crypt(X1,X2)) :- __type_11(X1), __def_52(X2)
    If  __type_11 X1
      [where __type_11(X1) :- testable_old(X1).]
    and __def_52 X2
      [where __def_52(key(pub,X1)) :- knows_old(key(prv,X1)).]
    then __type_13(crypt(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
33. __type_25(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X4) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))), knows_current(crypt(cons(noncea_current(X1,X2),cons(X4,nil)),key(sym,X3))).]
    and __def_105 X2
      [where __def_105(key(sym,X2)) :- knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X3) :- knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))).]
34. __type_25(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X4,cons(nonceb_old(X7,X5),nil))) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))), knows_old(cons(X7,cons(enc(X6,passwd_old(X7,X5)),nil))), knows_old(crypt(X8,key(sym,r_old(X7,X5)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X4,X1))) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X4) :- knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))).]
35. __type_25(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X1,X3)) :- knows_current(enc(crypt(X2,key(pub,session_current(X1,X3))),passwd_current(X1,X3))).]
    and __def_86 X2
      [where __def_86(key(sym,X3)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X1,nil))).]
36. __type_25(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    and __def_22 X2
      [where __def_22(dec(X1,passwd_old(X3,X5))) :- knows_old(cons(X2,cons(X1,nil))), knows_old(cons(X3,cons(X4,nil))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))).]
37. __type_25(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X3,X2)) :- knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    and __type_2 X2
      [where __type_2(X3) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X2,nil))), knows_current(crypt(X1,key(sym,r_current(X3,X4)))).]
38. __type_25(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X1,X2)) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    and __def_25 X2
      [where __def_25(key(sym,X3)) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X2) :- knows_current(crypt(nonceb_current(X2,X4),key(sym,r_current(X2,X4)))), knows_current(crypt(X3,key(sym,r_current(X2,X4)))), knows_current(cons(X2,cons(X1,nil))).]
39. __type_25(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X2) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X4))),passwd_old(X1,X4))), knows_old(crypt(cons(noncea_old(X1,X4),cons(X2,nil)),key(sym,X3))).]
    and __def_44 X2
      [where __def_44(key(sym,X1)) :- knows_old(crypt(cons(noncea_old(X4,X2),cons(X3,nil)),key(sym,X1))), knows_old(enc(crypt(X1,key(pub,session_old(X4,X2))),passwd_old(X4,X2))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X1) :- knows_current(cons(X1,cons(X2,nil))), knows_current(crypt(X3,key(sym,r_current(X1,X4)))), knows_current(crypt(nonceb_current(X1,X4),key(sym,r_current(X1,X4)))).]
40. __type_25(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X8,cons(nonceb_current(X1,X4),nil))) :- knows_current(cons(X1,cons(X2,nil))), knows_current(crypt(X6,key(sym,r_current(X1,X4)))), knows_current(crypt(X8,key(sym,r_current(X5,X7)))), knows_current(cons(X5,cons(X3,nil))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X2,X3))) :- knows_current(cons(X2,cons(X1,nil))), knows_current(crypt(X4,key(sym,r_current(X2,X3)))).]
    then __type_25(crypt(X1,X2))
      [where __type_25(X1) :- knows_current(crypt(nonceb_current(X1,X3),key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X2,nil))), knows_current(crypt(X4,key(sym,r_current(X1,X3)))).]
41. __type_25(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_25(crypt(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(X4,key(sym,r_current(X3,X2)))), knows_current(crypt(nonceb_current(X3,X2),key(sym,r_current(X3,X2)))), knows_current(cons(X3,cons(X1,nil))).]
42. __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2)
    If  __def_82 X1
      [where __def_82(r_current(X2,X1)) :- knows_current(cons(X2,cons(X3,nil))).]
    and __def_83 X2
      [where __def_83(dec(X5,passwd_current(X2,X1))) :- knows_current(cons(X4,cons(X5,nil))), knows_current(cons(X2,cons(X3,nil))).]
    then __def_80(crypt(X1,X2))
      [where __def_80(crypt(r_current(X3,X4),dec(X2,passwd_current(X8,X1)))) :- knows_current(cons(X6,cons(X2,nil))), knows_current(cons(X3,cons(X5,nil))), knows_current(cons(X8,cons(X7,nil))).]
43. __type_17(crypt(X1,X2)) :- __def_82(X1), __def_83(X2)
    If  __def_82 X1
      [where __def_82(r_current(X3,X1)) :- knows_current(cons(X3,cons(X2,nil))).]
    and __def_83 X2
      [where __def_83(dec(X1,passwd_current(X2,X5))) :- knows_current(cons(X2,cons(X4,nil))), knows_current(cons(X3,cons(X1,nil))).]
    then __type_17(crypt(X1,X2))
      [where __type_17(X2) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
44. __type_17(crypt(X1,X2)) :- __def_78(X1), __type_17(X2)
    If  __def_78 X1
      [where __def_78(r_current(X2,X3)) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))).]
    and __type_17 X2
      [where __type_17(X1) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))).]
    then __type_17(crypt(X1,X2))
      [where __type_17(X2) :- knows_current(cons(X3,cons(enc(X2,passwd_current(X3,X1)),nil))).]
45. __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    and __def_22 X2
      [where __def_22(dec(X4,passwd_old(X5,X1))) :- knows_old(cons(X5,cons(X2,nil))), knows_old(cons(X3,cons(X4,nil))).]
    then __def_19(crypt(X1,X2))
      [where __def_19(crypt(r_old(X3,X8),dec(X6,passwd_old(X5,X2)))) :- knows_old(cons(X3,cons(X7,nil))), knows_old(cons(X4,cons(X6,nil))), knows_old(cons(X5,cons(X1,nil))).]
46. __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2)
    If  __def_78 X1
      [where __def_78(r_current(X2,X1)) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))).]
    and __type_17 X2
      [where __type_17(X3) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))).]
    then __def_76(crypt(X1,X2))
      [where __def_76(crypt(r_current(X1,X3),X5)) :- knows_current(cons(X4,cons(enc(X5,passwd_current(X4,X6)),nil))), knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
47. __type_24(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X4) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))), knows_current(crypt(cons(noncea_current(X1,X2),cons(X4,nil)),key(sym,X3))).]
    and __def_105 X2
      [where __def_105(key(sym,X2)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X3) :- knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X4)),nil))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))).]
48. __type_24(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X6,cons(nonceb_old(X3,X2),nil))) :- knows_old(crypt(X6,key(sym,r_old(X5,X7)))), knows_old(cons(X5,cons(enc(X8,passwd_old(X5,X7)),nil))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))), knows_old(crypt(X4,key(sym,r_old(X3,X2)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X2,X4))) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X4) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X3)),nil))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))).]
49. __type_24(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X2,X3)) :- knows_current(enc(crypt(X1,key(pub,session_current(X2,X3))),passwd_current(X2,X3))).]
    and __def_86 X2
      [where __def_86(key(sym,X3)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X4) :- knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X3)),nil))).]
50. __type_24(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    and __def_22 X2
      [where __def_22(dec(X5,passwd_old(X2,X3))) :- knows_old(cons(X2,cons(X4,nil))), knows_old(cons(X1,cons(X5,nil))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X3) :- knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X4)),nil))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))).]
51. __type_24(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X2,X3)) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    and __type_2 X2
      [where __type_2(X1) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
52. __type_24(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X3,X1)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X1)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X1) :- knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))).]
53. __type_24(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X2) :- knows_old(enc(crypt(X1,key(pub,session_old(X4,X3))),passwd_old(X4,X3))), knows_old(crypt(cons(noncea_old(X4,X3),cons(X2,nil)),key(sym,X1))).]
    and __def_44 X2
      [where __def_44(key(sym,X3)) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))), knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))).]
54. __type_24(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X7,cons(nonceb_current(X2,X3),nil))) :- knows_current(cons(X8,cons(X6,nil))), knows_current(crypt(X7,key(sym,r_current(X8,X5)))), knows_current(cons(X2,cons(X1,nil))), knows_current(crypt(X4,key(sym,r_current(X2,X3)))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X3,X2))) :- knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))).]
    then __type_24(crypt(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
55. __type_24(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_24(crypt(X1,X2))
      [where __type_24(X4) :- knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X3)),nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))).]
56. __type_3(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X7,cons(nonceb_old(X2,X5),nil))) :- knows_old(cons(X6,cons(enc(X8,passwd_old(X6,X4)),nil))), knows_old(crypt(X7,key(sym,r_old(X6,X4)))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X5)),nil))), knows_old(crypt(X1,key(sym,r_old(X2,X5)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X1,X3))) :- knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).]
    then __type_3(crypt(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
57. __type_3(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X2,X3)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    and __def_25 X2
      [where __def_25(key(sym,X3)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then __type_3(crypt(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
58. __type_3(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X1) :- knows_old(crypt(cons(noncea_old(X2,X3),cons(X1,nil)),key(sym,X4))), knows_old(enc(crypt(X4,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    and __def_44 X2
      [where __def_44(key(sym,X2)) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).]
    then __type_3(crypt(X1,X2))
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
59. __type_3(crypt(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_3(crypt(X1,X2))
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
60. __type_2(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    and __def_22 X2
      [where __def_22(dec(X2,passwd_old(X1,X4))) :- knows_old(cons(X1,cons(X5,nil))), knows_old(cons(X3,cons(X2,nil))).]
    then __type_2(crypt(X1,X2))
      [where __type_2(X2) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
61. __type_2(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X2,X3)) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    and __type_2 X2
      [where __type_2(X1) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    then __type_2(crypt(X1,X2))
      [where __type_2(X2) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
62. __type_12(crypt(X1,X2)) :- __type_12(X1), __def_54(X2)
    If  __type_12 X1
      [where __type_12(X1) :- testable_old(X1).]
    and __def_54 X2
      [where __def_54(key(prv,X1)) :- knows_old(key(pub,X1)).]
    then __type_12(crypt(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
63. __type_12(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X8,cons(nonceb_old(X4,X3),nil))) :- knows_old(crypt(X8,key(sym,r_old(X1,X7)))), knows_old(cons(X1,cons(enc(X6,passwd_old(X1,X7)),nil))), knows_old(crypt(X5,key(sym,r_old(X4,X3)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X3)),nil))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X4,X1))) :- knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))), knows_old(crypt(X3,key(sym,r_old(X4,X1)))).]
    then __type_12(crypt(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
64. __type_12(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X1,X3)) :- knows_old(enc(crypt(X2,key(pub,session_old(X1,X3))),passwd_old(X1,X3))).]
    and __def_25 X2
      [where __def_25(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X1))),passwd_old(X3,X1))).]
    then __type_12(crypt(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
65. __type_12(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X4) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))), knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))).]
    and __def_44 X2
      [where __def_44(key(sym,X2)) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).]
    then __type_12(crypt(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
66. __type_12(crypt(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_12(crypt(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
67. __type_12(crypt(X1,X2)) :- __type_11(X1), __def_52(X2)
    If  __type_11 X1
      [where __type_11(X1) :- testable_old(X1).]
    and __def_52 X2
      [where __def_52(key(pub,X1)) :- knows_old(key(prv,X1)).]
    then __type_12(crypt(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
68. knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X2) :- knows_current(crypt(cons(noncea_current(X4,X3),cons(X2,nil)),key(sym,X1))), knows_current(enc(crypt(X1,key(pub,session_current(X4,X3))),passwd_current(X4,X3))).]
    and __def_105 X2
      [where __def_105(key(sym,X1)) :- knows_current(enc(crypt(X1,key(pub,session_current(X4,X3))),passwd_current(X4,X3))), knows_current(crypt(cons(noncea_current(X4,X3),cons(X2,nil)),key(sym,X1))).]
    then knows_current(crypt(X1,X2))
69. knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X2,cons(nonceb_old(X5,X7),nil))) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))), knows_old(cons(X5,cons(enc(X8,passwd_old(X5,X7)),nil))), knows_old(crypt(X6,key(sym,r_old(X5,X7)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X2,X4))) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))).]
    then knows_current(crypt(X1,X2))
70. knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X2,X3)) :- knows_current(enc(crypt(X1,key(pub,session_current(X2,X3))),passwd_current(X2,X3))).]
    and __def_86 X2
      [where __def_86(key(sym,X2)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X1))),passwd_current(X3,X1))).]
    then knows_current(crypt(X1,X2))
71. knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    and __def_22 X2
      [where __def_22(dec(X2,passwd_old(X1,X4))) :- knows_old(cons(X3,cons(X2,nil))), knows_old(cons(X1,cons(X5,nil))).]
    then knows_current(crypt(X1,X2))
72. knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X3,X1)) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
    and __type_2 X2
      [where __type_2(X1) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    then knows_current(crypt(X1,X2))
73. knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X2,X3)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    and __def_25 X2
      [where __def_25(key(sym,X3)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then knows_current(crypt(X1,X2))
74. knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X4) :- knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))), knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    and __def_44 X2
      [where __def_44(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).]
    then knows_current(crypt(X1,X2))
75. knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X8,cons(nonceb_current(X4,X1),nil))) :- knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(crypt(X8,key(sym,r_current(X7,X6)))), knows_current(cons(X7,cons(X5,nil))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X1,X3))) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).]
    then knows_current(crypt(X1,X2))
76. knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then knows_current(crypt(X1,X2))
77. __type_28(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X2) :- knows_current(crypt(cons(noncea_current(X4,X3),cons(X2,nil)),key(sym,X1))), knows_current(enc(crypt(X1,key(pub,session_current(X4,X3))),passwd_current(X4,X3))).]
    and __def_105 X2
      [where __def_105(key(sym,X1)) :- knows_current(enc(crypt(X1,key(pub,session_current(X4,X2))),passwd_current(X4,X2))), knows_current(crypt(cons(noncea_current(X4,X2),cons(X3,nil)),key(sym,X1))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
78. __type_28(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X3,cons(nonceb_old(X8,X5),nil))) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(crypt(X7,key(sym,r_old(X8,X5)))), knows_old(cons(X8,cons(enc(X6,passwd_old(X8,X5)),nil))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X3,X2))) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
79. __type_28(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X3,X1)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X1))),passwd_current(X3,X1))).]
    and __def_86 X2
      [where __def_86(key(sym,X2)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X1))),passwd_current(X3,X1))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
80. __type_28(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    and __def_22 X2
      [where __def_22(dec(X5,passwd_old(X4,X2))) :- knows_old(cons(X3,cons(X5,nil))), knows_old(cons(X4,cons(X1,nil))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
81. __type_28(crypt(X1,X2)) :- __type_27(X1), __def_114(X2)
    If  __type_27 X1
      [where __type_27(X1) :- testable_current(X1).]
    and __def_114 X2
      [where __def_114(key(prv,X1)) :- knows_current(key(pub,X1)).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
82. __type_28(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X2,X3)) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    and __type_2 X2
      [where __type_2(X3) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
83. __type_28(crypt(X1,X2)) :- __type_26(X1), __def_112(X2)
    If  __type_26 X1
      [where __type_26(X1) :- testable_current(X1).]
    and __def_112 X2
      [where __def_112(key(pub,X1)) :- knows_current(key(prv,X1)).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
84. __type_28(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X1,X3)) :- knows_old(enc(crypt(X2,key(pub,session_old(X1,X3))),passwd_old(X1,X3))).]
    and __def_25 X2
      [where __def_25(key(sym,X1)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
85. __type_28(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X2) :- knows_old(enc(crypt(X1,key(pub,session_old(X4,X3))),passwd_old(X4,X3))), knows_old(crypt(cons(noncea_old(X4,X3),cons(X2,nil)),key(sym,X1))).]
    and __def_44 X2
      [where __def_44(key(sym,X3)) :- knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))), knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
86. __type_28(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X5,cons(nonceb_current(X1,X3),nil))) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(crypt(X5,key(sym,r_current(X6,X8)))), knows_current(cons(X1,cons(X4,nil))), knows_current(cons(X6,cons(X7,nil))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X4,X1))) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(X2,nil))).]
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
87. __type_28(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_28(crypt(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
88. testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X4) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))), knows_current(crypt(cons(noncea_current(X1,X2),cons(X4,nil)),key(sym,X3))).]
    and __def_105 X2
      [where __def_105(key(sym,X1)) :- knows_current(crypt(cons(noncea_current(X4,X3),cons(X2,nil)),key(sym,X1))), knows_current(enc(crypt(X1,key(pub,session_current(X4,X3))),passwd_current(X4,X3))).]
    then testable_current(crypt(X1,X2))
89. testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X4,cons(nonceb_old(X7,X6),nil))) :- knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))), knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X7,cons(enc(X5,passwd_old(X7,X6)),nil))), knows_old(crypt(X8,key(sym,r_old(X7,X6)))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X4,X1))) :- knows_old(crypt(X3,key(sym,r_old(X4,X1)))), knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X1)),nil))).]
    then testable_current(crypt(X1,X2))
90. testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X1,X3)) :- knows_current(enc(crypt(X2,key(pub,session_current(X1,X3))),passwd_current(X1,X3))).]
    and __def_86 X2
      [where __def_86(key(sym,X3)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    then testable_current(crypt(X1,X2))
91. testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    and __def_22 X2
      [where __def_22(dec(X1,passwd_old(X5,X2))) :- knows_old(cons(X4,cons(X1,nil))), knows_old(cons(X5,cons(X3,nil))).]
    then testable_current(crypt(X1,X2))
92. testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2)
    If  __type_27 X1
      [where __type_27(X1) :- testable_current(X1).]
    and __def_114 X2
      [where __def_114(key(prv,X1)) :- knows_current(key(pub,X1)).]
    then testable_current(crypt(X1,X2))
93. testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X2,X1)) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    and __type_2 X2
      [where __type_2(X2) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    then testable_current(crypt(X1,X2))
94. testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2)
    If  __type_26 X1
      [where __type_26(X1) :- testable_current(X1).]
    and __def_112 X2
      [where __def_112(key(pub,X1)) :- knows_current(key(prv,X1)).]
    then testable_current(crypt(X1,X2))
95. testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X1,X3)) :- knows_old(enc(crypt(X2,key(pub,session_old(X1,X3))),passwd_old(X1,X3))).]
    and __def_25 X2
      [where __def_25(key(sym,X1)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    then testable_current(crypt(X1,X2))
96. testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X4) :- knows_old(crypt(cons(noncea_old(X1,X2),cons(X4,nil)),key(sym,X3))), knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).]
    and __def_44 X2
      [where __def_44(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).]
    then testable_current(crypt(X1,X2))
97. testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X4,cons(nonceb_current(X6,X8),nil))) :- knows_current(crypt(X5,key(sym,r_current(X6,X8)))), knows_current(cons(X6,cons(X7,nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))), knows_current(cons(X3,cons(X1,nil))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X1,X3))) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).]
    then testable_current(crypt(X1,X2))
98. testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then testable_current(crypt(X1,X2))
99. testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2)
    If  __type_12 X1
      [where __type_12(X1) :- testable_old(X1).]
    and __def_54 X2
      [where __def_54(key(prv,X1)) :- knows_old(key(pub,X1)).]
    then testable_old(crypt(X1,X2))
100. testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X1,cons(nonceb_old(X6,X8),nil))) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))), knows_old(crypt(X5,key(sym,r_old(X6,X8)))), knows_old(cons(X6,cons(enc(X7,passwd_old(X6,X8)),nil))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X1,X3))) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).]
    then testable_old(crypt(X1,X2))
101. testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X2,X3)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
    and __def_25 X2
      [where __def_25(key(sym,X3)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then testable_old(crypt(X1,X2))
102. testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X3) :- knows_old(crypt(cons(noncea_old(X2,X1),cons(X3,nil)),key(sym,X4))), knows_old(enc(crypt(X4,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    and __def_44 X2
      [where __def_44(key(sym,X1)) :- knows_old(crypt(cons(noncea_old(X4,X3),cons(X2,nil)),key(sym,X1))), knows_old(enc(crypt(X1,key(pub,session_old(X4,X3))),passwd_old(X4,X3))).]
    then testable_old(crypt(X1,X2))
103. testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then testable_old(crypt(X1,X2))
104. testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2)
    If  __type_11 X1
      [where __type_11(X1) :- testable_old(X1).]
    and __def_52 X2
      [where __def_52(key(pub,X1)) :- knows_old(key(prv,X1)).]
    then testable_old(crypt(X1,X2))
105. __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X1,X3)) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    and __type_2 X2
      [where __type_2(X2) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    then __def_15(crypt(X1,X2))
      [where __def_15(crypt(r_old(X3,X1),X5)) :- knows_old(cons(X6,cons(enc(X5,passwd_old(X6,X4)),nil))), knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
106. __type_18(crypt(X1,X2)) :- __type_22(X1), __def_105(X2)
    If  __type_22 X1
      [where __type_22(X1) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))).]
    and __def_105 X2
      [where __def_105(key(sym,X2)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
107. __type_18(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X2,cons(nonceb_old(X6,X8),nil))) :- knows_old(crypt(X5,key(sym,r_old(X6,X8)))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X6,cons(enc(X7,passwd_old(X6,X8)),nil))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X3,X2))) :- knows_old(crypt(X4,key(sym,r_old(X3,X2)))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
108. __type_18(crypt(X1,X2)) :- __def_85(X1), __def_86(X2)
    If  __def_85 X1
      [where __def_85(noncea_current(X2,X1)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    and __def_86 X2
      [where __def_86(key(sym,X3)) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
109. __type_18(crypt(X1,X2)) :- __def_21(X1), __def_22(X2)
    If  __def_21 X1
      [where __def_21(r_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    and __def_22 X2
      [where __def_22(dec(X4,passwd_old(X2,X5))) :- knows_old(cons(X2,cons(X3,nil))), knows_old(cons(X1,cons(X4,nil))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
110. __type_18(crypt(X1,X2)) :- __def_17(X1), __type_2(X2)
    If  __def_17 X1
      [where __def_17(r_old(X1,X3)) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    and __type_2 X2
      [where __type_2(X2) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
111. __type_18(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X2,X1)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X1,X3))),passwd_old(X1,X3))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
112. __type_18(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X2) :- knows_old(crypt(cons(noncea_old(X4,X3),cons(X2,nil)),key(sym,X1))), knows_old(enc(crypt(X1,key(pub,session_old(X4,X3))),passwd_old(X4,X3))).]
    and __def_44 X2
      [where __def_44(key(sym,X1)) :- knows_old(crypt(cons(noncea_old(X4,X3),cons(X2,nil)),key(sym,X1))), knows_old(enc(crypt(X1,key(pub,session_old(X4,X3))),passwd_old(X4,X3))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
113. __type_18(crypt(X1,X2)) :- __def_97(X1), __def_98(X2)
    If  __def_97 X1
      [where __def_97(cons(X5,cons(nonceb_current(X3,X2),nil))) :- knows_current(cons(X6,cons(X7,nil))), knows_current(crypt(X5,key(sym,r_current(X6,X8)))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))), knows_current(cons(X3,cons(X1,nil))).]
    and __def_98 X2
      [where __def_98(key(sym,r_current(X1,X3))) :- knows_current(cons(X1,cons(X4,nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).]
    then __type_18(crypt(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
114. __type_18(crypt(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_18(crypt(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
115. __type_11(crypt(X1,X2)) :- __type_12(X1), __def_54(X2)
    If  __type_12 X1
      [where __type_12(X1) :- testable_old(X1).]
    and __def_54 X2
      [where __def_54(key(prv,X1)) :- knows_old(key(pub,X1)).]
    then __type_11(crypt(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
116. __type_11(crypt(X1,X2)) :- __def_28(X1), __def_29(X2)
    If  __def_28 X1
      [where __def_28(cons(X1,cons(nonceb_old(X6,X8),nil))) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))), knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(crypt(X5,key(sym,r_old(X6,X8)))), knows_old(cons(X6,cons(enc(X7,passwd_old(X6,X8)),nil))).]
    and __def_29 X2
      [where __def_29(key(sym,r_old(X1,X3))) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).]
    then __type_11(crypt(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
117. __type_11(crypt(X1,X2)) :- __def_24(X1), __def_25(X2)
    If  __def_24 X1
      [where __def_24(noncea_old(X2,X1)) :- knows_old(enc(crypt(X3,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    and __def_25 X2
      [where __def_25(key(sym,X2)) :- knows_old(enc(crypt(X2,key(pub,session_old(X1,X3))),passwd_old(X1,X3))).]
    then __type_11(crypt(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
118. __type_11(crypt(X1,X2)) :- __type_7(X1), __def_44(X2)
    If  __type_7 X1
      [where __type_7(X1) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).]
    and __def_44 X2
      [where __def_44(key(sym,X4)) :- knows_old(crypt(cons(noncea_old(X2,X1),cons(X3,nil)),key(sym,X4))), knows_old(enc(crypt(X4,key(pub,session_old(X2,X1))),passwd_old(X2,X1))).]
    then __type_11(crypt(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
119. __type_11(crypt(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_11(crypt(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
120. __type_11(crypt(X1,X2)) :- __type_11(X1), __def_52(X2)
    If  __type_11 X1
      [where __type_11(X1) :- testable_old(X1).]
    and __def_52 X2
      [where __def_52(key(pub,X1)) :- knows_old(key(prv,X1)).]
    then __type_11(crypt(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of prv
1. __def_115(prv)
      [where __def_115(prv).]
2. __def_62(prv)
      [where __def_62(prv).]
3. __def_55(prv)
      [where __def_55(prv).]
4. __def_118(prv)
      [where __def_118(prv).]
5. __def_58(prv)
      [where __def_58(prv).]
. Semantics of noncea_current
1. __type_20(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2)
    If  agent X1
    and knows_current X1
    and agent X2
    then __type_20(noncea_current(X1,X2))
      [where __type_20(X1) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X4)),nil))), knows_current(crypt(X1,key(sym,r_current(X2,X4)))).]
2. __type_21(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2)
    If  agent X1
    and knows_current X1
    and agent X2
    then __type_21(noncea_current(X1,X2))
      [where __type_21(X1) :- knows_current(cons(X2,cons(X3,nil))), knows_current(crypt(X1,key(sym,r_current(X2,X4)))).]
3. __def_85(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2)
    If  agent X1
    and knows_current X1
    and agent X2
    then __def_85(noncea_current(X1,X2))
      [where __def_85(noncea_current(X3,X1)) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X1))),passwd_current(X3,X1))).]
. Semantics of pub
1. __def_12(pub)
      [where __def_12(pub).]
2. __def_51(pub)
      [where __def_51(pub).]
3. __def_59(pub)
      [where __def_59(pub).]
4. __def_113(pub)
      [where __def_113(pub).]
5. __def_119(pub)
      [where __def_119(pub).]
6. __def_53(pub)
      [where __def_53(pub).]
. Semantics of r_current
1. __def_103(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_103(r_current(X1,X2))
      [where __def_103(r_current(X3,X2)) :- knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(X4,key(sym,r_current(X3,X2)))).]
2. __def_111(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_111(r_current(X1,X2))
      [where __def_111(r_current(X4,X3)) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))).]
3. __def_82(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_82(r_current(X1,X2))
      [where __def_82(r_current(X1,X2)) :- knows_current(cons(X1,cons(X3,nil))).]
4. __def_78(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_78(r_current(X1,X2))
      [where __def_78(r_current(X1,X3)) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
5. __type_31(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __type_31(r_current(X1,X2))
      [where __type_31(X2) :- testable_current(X1), knows_current(crypt(X1,key(sym,X2))).]
6. __def_109(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_109(r_current(X1,X2))
      [where __def_109(r_current(X1,X2)) :- knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).]
7. __type_23(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __type_23(r_current(X1,X2))
      [where __type_23(X4) :- knows_current(enc(crypt(X4,key(pub,session_current(X2,X1))),passwd_current(X2,X1))), knows_current(crypt(cons(noncea_current(X2,X1),cons(X3,nil)),key(sym,X4))).]
8. __type_19(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __type_19(r_current(X1,X2))
      [where __type_19(X3) :- knows_current(enc(crypt(X3,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
9. __def_95(r_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_95(r_current(X1,X2))
      [where __def_95(r_current(X4,X1)) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X1)),nil))).]
. Semantics of sym
1. __def_26(sym)
      [where __def_26(sym).]
2. __def_33(sym)
      [where __def_33(sym).]
3. __def_117(sym)
      [where __def_117(sym).]
4. __def_45(sym)
      [where __def_45(sym).]
5. __def_87(sym)
      [where __def_87(sym).]
6. __def_121(sym)
      [where __def_121(sym).]
7. __def_41(sym)
      [where __def_41(sym).]
8. __def_61(sym)
      [where __def_61(sym).]
9. __def_102(sym)
      [where __def_102(sym).]
10. __def_106(sym)
      [where __def_106(sym).]
11. __def_57(sym)
      [where __def_57(sym).]
12. __def_94(sym)
      [where __def_94(sym).]
. Semantics of noncea_old
1. __type_26(noncea_old(X1,X2))
    then __type_26(noncea_old(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
2. __type_27(noncea_old(X1,X2))
    then __type_27(noncea_old(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
3. __type_25(noncea_old(X1,X2))
    then __type_25(noncea_old(X1,X2))
      [where __type_25(X3) :- knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(X1,nil))), knows_current(crypt(X2,key(sym,r_current(X3,X4)))).]
4. __def_24(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2)
    If  agent X1
    and __type_1 X1
      [where __type_1(X1) :- agent(X1).]
    and agent X2
    then __def_24(noncea_old(X1,X2))
      [where __def_24(noncea_old(X2,X3)) :- knows_old(enc(crypt(X1,key(pub,session_old(X2,X3))),passwd_old(X2,X3))).]
5. __type_24(noncea_old(X1,X2))
    then __type_24(noncea_old(X1,X2))
      [where __type_24(X2) :- knows_current(crypt(X4,key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))).]
6. __type_5(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2)
    If  agent X1
    and __type_1 X1
      [where __type_1(X1) :- agent(X1).]
    and agent X2
    then __type_5(noncea_old(X1,X2))
      [where __type_5(X1) :- knows_old(crypt(X1,key(sym,r_old(X2,X4)))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X4)),nil))).]
7. __type_6(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2)
    If  agent X1
    and __type_1 X1
      [where __type_1(X1) :- agent(X1).]
    and agent X2
    then __type_6(noncea_old(X1,X2))
      [where __type_6(X1) :- knows_old(cons(X2,cons(X3,nil))), knows_old(crypt(X1,key(sym,r_old(X2,X4)))).]
8. knows_current(noncea_old(X1,X2))
    then knows_current(noncea_old(X1,X2))
9. __type_28(noncea_old(X1,X2))
    then __type_28(noncea_old(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
10. testable_current(noncea_old(X1,X2))
    then testable_current(noncea_old(X1,X2))
11. __type_18(noncea_old(X1,X2))
    then __type_18(noncea_old(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
. Semantics of alice
1. knows_old(alice)
2. __type_26(alice)
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(alice)
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(alice)
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(alice)
      [where __type_25(X4) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))).]
6. __type_29(alice)
      [where __type_29(X2) :- testable_current(X1), knows_current(crypt(X1,key(pub,X2))).]
7. __def_4(alice)
      [where __def_4(X1) :- knows_old(key(pub,X1)).]
8. __def_67(alice)
      [where __def_67(X1) :- knows_current(key(pub,X1)).]
9. __type_24(alice)
      [where __type_24(X2) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))), knows_current(crypt(X4,key(sym,r_current(X2,X1)))).]
10. agent(alice)
11. __type_1(alice)
      [where __type_1(X1) :- agent(X1).]
12. __type_3(alice)
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
13. __type_12(alice)
      [where __type_12(X1) :- testable_old(X1).]
14. knows_current(alice)
15. __type_28(alice)
      [where __type_28(X1) :- testable_current(X1).]
16. testable_current(alice)
17. testable_old(alice)
18. __type_14(alice)
      [where __type_14(X1) :- testable_old(X2), knows_old(crypt(X2,key(pub,X1))).]
19. __type_18(alice)
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
20. __type_11(alice)
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of nonceb_current
1. __def_100(nonceb_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_100(nonceb_current(X1,X2))
      [where __def_100(nonceb_current(X3,X2)) :- knows_current(crypt(X4,key(sym,r_current(X3,X2)))), knows_current(cons(X3,cons(X1,nil))).]
2. __type_20(nonceb_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __type_20(nonceb_current(X1,X2))
      [where __type_20(X3) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X1)),nil))).]
3. __type_21(nonceb_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __type_21(nonceb_current(X1,X2))
      [where __type_21(X1) :- knows_current(cons(X2,cons(X3,nil))), knows_current(crypt(X1,key(sym,r_current(X2,X4)))).]
4. __type_22(nonceb_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __type_22(nonceb_current(X1,X2))
      [where __type_22(X3) :- knows_current(crypt(cons(noncea_current(X2,X1),cons(X3,nil)),key(sym,X4))), knows_current(enc(crypt(X4,key(pub,session_current(X2,X1))),passwd_current(X2,X1))).]
5. __def_92(nonceb_current(X1,X2)) :- knows_current(X1)
    If  knows_current X1
    then __def_92(nonceb_current(X1,X2))
      [where __def_92(nonceb_current(X4,X1)) :- knows_current(crypt(X3,key(sym,r_current(X4,X1)))), knows_current(cons(X4,cons(enc(X2,passwd_current(X4,X1)),nil))).]
. Semantics of enc
1. knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2)
    If  __def_15 X1
      [where __def_15(crypt(r_old(X2,X1),X4)) :- knows_old(cons(X5,cons(enc(X4,passwd_old(X5,X6)),nil))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    and __def_16 X2
      [where __def_16(passwd_old(X2,X3)) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    then knows_old(enc(X1,X2))
2. knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2)
    If  __def_19 X1
      [where __def_19(crypt(r_old(X7,X4),dec(X2,passwd_old(X1,X6)))) :- knows_old(cons(X7,cons(X3,nil))), knows_old(cons(X1,cons(X8,nil))), knows_old(cons(X5,cons(X2,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    then knows_old(enc(X1,X2))
3. knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X2,X1))) :- agent(X1), agent(X2).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then knows_old(enc(X1,X2))
4. knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then knows_old(enc(X1,X2))
5. __type_26(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X2,X1))) :- agent(X2), agent(X1).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_26(enc(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
6. __type_26(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X8,X6),dec(X5,passwd_current(X1,X4)))) :- knows_current(cons(X8,cons(X2,nil))), knows_current(cons(X3,cons(X5,nil))), knows_current(cons(X1,cons(X7,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X3,X1)) :- knows_current(cons(X3,cons(X2,nil))).]
    then __type_26(enc(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
7. __type_26(enc(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then __type_26(enc(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
8. __type_26(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X5,X4),X1)) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))), knows_current(cons(X5,cons(enc(X6,passwd_current(X5,X4)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X2,X3)) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))).]
    then __type_26(enc(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
9. __type_27(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X2,X1))) :- agent(X2), agent(X1).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_27(enc(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
10. __type_27(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X5,X3),dec(X8,passwd_current(X7,X1)))) :- knows_current(cons(X7,cons(X6,nil))), knows_current(cons(X5,cons(X4,nil))), knows_current(cons(X2,cons(X8,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X1,X2)) :- knows_current(cons(X1,cons(X3,nil))).]
    then __type_27(enc(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
11. __type_27(enc(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then __type_27(enc(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
12. __type_27(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X6,X4),X2)) :- knows_current(cons(X6,cons(enc(X5,passwd_current(X6,X4)),nil))), knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X1,X3)) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
    then __type_27(enc(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
13. __type_13(enc(X1,X2)) :- __def_15(X1), __def_16(X2)
    If  __def_15 X1
      [where __def_15(crypt(r_old(X6,X4),X2)) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))), knows_old(cons(X6,cons(enc(X5,passwd_old(X6,X4)),nil))).]
    and __def_16 X2
      [where __def_16(passwd_old(X3,X1)) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
    then __type_13(enc(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
14. __type_13(enc(X1,X2)) :- __def_19(X1), __def_20(X2)
    If  __def_19 X1
      [where __def_19(crypt(r_old(X1,X3),dec(X5,passwd_old(X2,X8)))) :- knows_old(cons(X1,cons(X4,nil))), knows_old(cons(X2,cons(X7,nil))), knows_old(cons(X6,cons(X5,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    then __type_13(enc(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
15. __type_13(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X2), agent(X1).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_13(enc(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
16. __type_13(enc(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then __type_13(enc(X1,X2))
      [where __type_13(X1) :- testable_old(X1).]
17. __type_25(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X2,X1))) :- agent(X2), agent(X1).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_25(enc(X1,X2))
      [where __type_25(X4) :- knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))).]
18. __type_25(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X6,X2),dec(X1,passwd_current(X8,X3)))) :- knows_current(cons(X8,cons(X7,nil))), knows_current(cons(X6,cons(X4,nil))), knows_current(cons(X5,cons(X1,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X2,X1)) :- knows_current(cons(X2,cons(X3,nil))).]
    then __type_25(enc(X1,X2))
      [where __type_25(X4) :- knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))).]
19. __type_25(enc(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_25(enc(X1,X2))
      [where __type_25(X4) :- knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))).]
20. __type_25(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X5,X4),X1)) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))), knows_current(cons(X5,cons(enc(X6,passwd_current(X5,X4)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X2,X3)) :- knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))).]
    then __type_25(enc(X1,X2))
      [where __type_25(X1) :- knows_current(cons(X1,cons(X4,nil))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))).]
21. __type_24(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X2,X1))) :- agent(X2), agent(X1).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_24(enc(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
22. __type_24(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X3,X7),dec(X4,passwd_current(X6,X1)))) :- knows_current(cons(X6,cons(X2,nil))), knows_current(cons(X8,cons(X4,nil))), knows_current(cons(X3,cons(X5,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X3,X1)) :- knows_current(cons(X3,cons(X2,nil))).]
    then __type_24(enc(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).]
23. __type_24(enc(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_24(enc(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
24. __type_24(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X3,X2),X4)) :- knows_current(cons(X6,cons(enc(X4,passwd_current(X6,X5)),nil))), knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X2)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X3,X1)) :- knows_current(cons(X3,cons(enc(X2,passwd_current(X3,X1)),nil))).]
    then __type_24(enc(X1,X2))
      [where __type_24(X2) :- knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))), knows_current(crypt(X4,key(sym,r_current(X2,X1)))).]
25. __def_71(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X1,X2))) :- agent(X1), agent(X2).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __def_71(enc(X1,X2))
      [where __def_71(enc(key(pub,session_current(X3,X1)),passwd_current(X2,X4))) :- agent(X3), agent(X1), agent(X2), agent(X4).]
26. __def_8(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X2), agent(X1).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then __def_8(enc(X1,X2))
      [where __def_8(enc(key(pub,session_old(X3,X1)),passwd_old(X4,X2))) :- agent(X1), agent(X3), agent(X4), agent(X2).]
27. __type_3(enc(X1,X2)) :- __def_15(X1), __def_16(X2)
    If  __def_15 X1
      [where __def_15(crypt(r_old(X2,X1),X5)) :- knows_old(cons(X6,cons(enc(X5,passwd_old(X6,X4)),nil))), knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    and __def_16 X2
      [where __def_16(passwd_old(X3,X1)) :- knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
    then __type_3(enc(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
28. __type_3(enc(X1,X2)) :- __def_19(X1), __def_20(X2)
    If  __def_19 X1
      [where __def_19(crypt(r_old(X7,X5),dec(X8,passwd_old(X1,X3)))) :- knows_old(cons(X4,cons(X8,nil))), knows_old(cons(X1,cons(X2,nil))), knows_old(cons(X7,cons(X6,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    then __type_3(enc(X1,X2))
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
29. __type_3(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X2), agent(X1).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_3(enc(X1,X2))
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
30. __type_3(enc(X1,X2)) :- knows_old(X1), knows_old(X2)
    If  knows_old X1
    and knows_old X2
    then __type_3(enc(X1,X2))
      [where __type_3(X2) :- knows_old(cons(X1,cons(X2,nil))).]
31. __type_12(enc(X1,X2)) :- __def_15(X1), __def_16(X2)
    If  __def_15 X1
      [where __def_15(crypt(r_old(X4,X5),X1)) :- knows_old(cons(X4,cons(enc(X2,passwd_old(X4,X5)),nil))), knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X6)),nil))).]
    and __def_16 X2
      [where __def_16(passwd_old(X2,X1)) :- knows_old(cons(X2,cons(enc(X3,passwd_old(X2,X1)),nil))).]
    then __type_12(enc(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
32. __type_12(enc(X1,X2)) :- __def_19(X1), __def_20(X2)
    If  __def_19 X1
      [where __def_19(crypt(r_old(X1,X6),dec(X8,passwd_old(X2,X3)))) :- knows_old(cons(X1,cons(X5,nil))), knows_old(cons(X7,cons(X8,nil))), knows_old(cons(X2,cons(X4,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    then __type_12(enc(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
33. __type_12(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X1), agent(X2).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_12(enc(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
34. __type_12(enc(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then __type_12(enc(X1,X2))
      [where __type_12(X1) :- testable_old(X1).]
35. knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X1,X2))) :- agent(X1), agent(X2).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then knows_current(enc(X1,X2))
36. knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X3,X5),dec(X8,passwd_current(X4,X2)))) :- knows_current(cons(X4,cons(X6,nil))), knows_current(cons(X3,cons(X1,nil))), knows_current(cons(X7,cons(X8,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X2,X1)) :- knows_current(cons(X2,cons(X3,nil))).]
    then knows_current(enc(X1,X2))
37. knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then knows_current(enc(X1,X2))
38. knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X6,X4),X3)) :- knows_current(cons(X6,cons(enc(X5,passwd_current(X6,X4)),nil))), knows_current(cons(X2,cons(enc(X3,passwd_current(X2,X1)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X1,X3)) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
    then knows_current(enc(X1,X2))
39. __type_28(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X1,X2))) :- agent(X1), agent(X2).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_28(enc(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
40. __type_28(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X7,X3),dec(X1,passwd_current(X4,X8)))) :- knows_current(cons(X4,cons(X6,nil))), knows_current(cons(X7,cons(X5,nil))), knows_current(cons(X2,cons(X1,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X2,X1)) :- knows_current(cons(X2,cons(X3,nil))).]
    then __type_28(enc(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
41. __type_28(enc(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then __type_28(enc(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
42. __type_28(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X6,X4),X2)) :- knows_current(cons(X6,cons(enc(X5,passwd_current(X6,X4)),nil))), knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X1,X3)) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
    then __type_28(enc(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
43. testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X2,X1))) :- agent(X2), agent(X1).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then testable_current(enc(X1,X2))
44. testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X7,X3),dec(X8,passwd_current(X4,X5)))) :- knows_current(cons(X7,cons(X2,nil))), knows_current(cons(X4,cons(X6,nil))), knows_current(cons(X1,cons(X8,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X1,X2)) :- knows_current(cons(X1,cons(X3,nil))).]
    then testable_current(enc(X1,X2))
45. testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2)
    If  testable_current X1
    and knows_current X2
    then testable_current(enc(X1,X2))
46. testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X3,X1),X5)) :- knows_current(cons(X4,cons(enc(X5,passwd_current(X4,X6)),nil))), knows_current(cons(X3,cons(enc(X2,passwd_current(X3,X1)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X1,X3)) :- knows_current(cons(X1,cons(enc(X2,passwd_current(X1,X3)),nil))).]
    then testable_current(enc(X1,X2))
47. testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2)
    If  __def_15 X1
      [where __def_15(crypt(r_old(X1,X3),X5)) :- knows_old(cons(X6,cons(enc(X5,passwd_old(X6,X4)),nil))), knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    and __def_16 X2
      [where __def_16(passwd_old(X2,X3)) :- knows_old(cons(X2,cons(enc(X1,passwd_old(X2,X3)),nil))).]
    then testable_old(enc(X1,X2))
48. testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2)
    If  __def_19 X1
      [where __def_19(crypt(r_old(X5,X6),dec(X2,passwd_old(X8,X4)))) :- knows_old(cons(X7,cons(X2,nil))), knows_old(cons(X8,cons(X3,nil))), knows_old(cons(X5,cons(X1,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X2,X1)) :- knows_old(cons(X2,cons(X3,nil))).]
    then testable_old(enc(X1,X2))
49. testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X1), agent(X2).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then testable_old(enc(X1,X2))
50. testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then testable_old(enc(X1,X2))
51. __type_18(enc(X1,X2)) :- __def_72(X1), __def_73(X2)
    If  __def_72 X1
      [where __def_72(key(pub,session_current(X1,X2))) :- agent(X2), agent(X1).]
    and __def_73 X2
      [where __def_73(passwd_current(X2,X1)) :- agent(X2), agent(X1).]
    then __type_18(enc(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
52. __type_18(enc(X1,X2)) :- __def_80(X1), __def_81(X2)
    If  __def_80 X1
      [where __def_80(crypt(r_current(X4,X5),dec(X3,passwd_current(X7,X1)))) :- knows_current(cons(X7,cons(X2,nil))), knows_current(cons(X8,cons(X3,nil))), knows_current(cons(X4,cons(X6,nil))).]
    and __def_81 X2
      [where __def_81(passwd_current(X1,X2)) :- knows_current(cons(X1,cons(X3,nil))).]
    then __type_18(enc(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
53. __type_18(enc(X1,X2)) :- knows_current(X1), knows_current(X2)
    If  knows_current X1
    and knows_current X2
    then __type_18(enc(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
54. __type_18(enc(X1,X2)) :- __def_76(X1), __def_77(X2)
    If  __def_76 X1
      [where __def_76(crypt(r_current(X2,X3),X5)) :- knows_current(cons(X6,cons(enc(X5,passwd_current(X6,X4)),nil))), knows_current(cons(X2,cons(enc(X1,passwd_current(X2,X3)),nil))).]
    and __def_77 X2
      [where __def_77(passwd_current(X3,X1)) :- knows_current(cons(X3,cons(enc(X2,passwd_current(X3,X1)),nil))).]
    then __type_18(enc(X1,X2))
      [where __type_18(X1) :- knows_current(cons(X2,cons(X1,nil))).]
55. __type_11(enc(X1,X2)) :- __def_15(X1), __def_16(X2)
    If  __def_15 X1
      [where __def_15(crypt(r_old(X3,X1),X5)) :- knows_old(cons(X4,cons(enc(X5,passwd_old(X4,X6)),nil))), knows_old(cons(X3,cons(enc(X2,passwd_old(X3,X1)),nil))).]
    and __def_16 X2
      [where __def_16(passwd_old(X1,X3)) :- knows_old(cons(X1,cons(enc(X2,passwd_old(X1,X3)),nil))).]
    then __type_11(enc(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
56. __type_11(enc(X1,X2)) :- __def_19(X1), __def_20(X2)
    If  __def_19 X1
      [where __def_19(crypt(r_old(X2,X4),dec(X6,passwd_old(X3,X7)))) :- knows_old(cons(X3,cons(X1,nil))), knows_old(cons(X2,cons(X8,nil))), knows_old(cons(X5,cons(X6,nil))).]
    and __def_20 X2
      [where __def_20(passwd_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
    then __type_11(enc(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
57. __type_11(enc(X1,X2)) :- __def_10(X1), __def_11(X2)
    If  __def_10 X1
      [where __def_10(key(pub,session_old(X1,X2))) :- agent(X1), agent(X2).]
    and __def_11 X2
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
    then __type_11(enc(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
58. __type_11(enc(X1,X2)) :- testable_old(X1), knows_old(X2)
    If  testable_old X1
    and knows_old X2
    then __type_11(enc(X1,X2))
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of bob
1. knows_old(bob)
2. __type_26(bob)
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(bob)
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(bob)
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(bob)
      [where __type_25(X4) :- knows_current(crypt(X1,key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))).]
6. __type_29(bob)
      [where __type_29(X2) :- knows_current(crypt(X1,key(pub,X2))), testable_current(X1).]
7. __def_4(bob)
      [where __def_4(X1) :- knows_old(key(pub,X1)).]
8. __def_67(bob)
      [where __def_67(X1) :- knows_current(key(pub,X1)).]
9. __type_24(bob)
      [where __type_24(X1) :- knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
10. agent(bob)
11. __type_1(bob)
      [where __type_1(X1) :- agent(X1).]
12. __type_3(bob)
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
13. __type_12(bob)
      [where __type_12(X1) :- testable_old(X1).]
14. knows_current(bob)
15. __type_28(bob)
      [where __type_28(X1) :- testable_current(X1).]
16. testable_current(bob)
17. testable_old(bob)
18. __type_14(bob)
      [where __type_14(X1) :- testable_old(X2), knows_old(crypt(X2,key(pub,X1))).]
19. __type_18(bob)
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
20. __type_11(bob)
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of server
1. knows_old(server)
2. __type_26(server)
      [where __type_26(X1) :- testable_current(X1).]
3. __type_27(server)
      [where __type_27(X1) :- testable_current(X1).]
4. __type_13(server)
      [where __type_13(X1) :- testable_old(X1).]
5. __type_25(server)
      [where __type_25(X4) :- knows_current(crypt(nonceb_current(X4,X3),key(sym,r_current(X4,X3)))), knows_current(cons(X4,cons(X2,nil))), knows_current(crypt(X1,key(sym,r_current(X4,X3)))).]
6. __type_29(server)
      [where __type_29(X2) :- testable_current(X1), knows_current(crypt(X1,key(pub,X2))).]
7. __def_4(server)
      [where __def_4(X1) :- knows_old(key(pub,X1)).]
8. __def_67(server)
      [where __def_67(X1) :- knows_current(key(pub,X1)).]
9. __type_24(server)
      [where __type_24(X3) :- knows_current(crypt(X2,key(sym,r_current(X3,X4)))), knows_current(crypt(nonceb_current(X3,X4),key(sym,r_current(X3,X4)))), knows_current(cons(X3,cons(enc(X1,passwd_current(X3,X4)),nil))).]
10. agent(server)
11. __type_1(server)
      [where __type_1(X1) :- agent(X1).]
12. __type_3(server)
      [where __type_3(X1) :- knows_old(cons(X2,cons(X1,nil))).]
13. __type_12(server)
      [where __type_12(X1) :- testable_old(X1).]
14. knows_current(server)
15. __type_28(server)
      [where __type_28(X1) :- testable_current(X1).]
16. testable_current(server)
17. testable_old(server)
18. __type_14(server)
      [where __type_14(X1) :- testable_old(X2), knows_old(crypt(X2,key(pub,X1))).]
19. __type_18(server)
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
20. __type_11(server)
      [where __type_11(X1) :- testable_old(X1).]
. Semantics of passwd_old
1. __type_26(passwd_old(X1,X2))
    then __type_26(passwd_old(X1,X2))
      [where __type_26(X1) :- testable_current(X1).]
2. __type_27(passwd_old(X1,X2))
    then __type_27(passwd_old(X1,X2))
      [where __type_27(X1) :- testable_current(X1).]
3. __type_25(passwd_old(X1,X2))
    then __type_25(passwd_old(X1,X2))
      [where __type_25(X2) :- knows_current(crypt(X4,key(sym,r_current(X2,X1)))), knows_current(crypt(nonceb_current(X2,X1),key(sym,r_current(X2,X1)))), knows_current(cons(X2,cons(X3,nil))).]
4. __type_24(passwd_old(X1,X2))
    then __type_24(passwd_old(X1,X2))
      [where __type_24(X1) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).]
5. __def_11(passwd_old(X1,X2)) :- agent(X1), agent(X2)
    If  agent X1
    and agent X2
    then __def_11(passwd_old(X1,X2))
      [where __def_11(passwd_old(X2,X1)) :- agent(X2), agent(X1).]
6. knows_current(passwd_old(X1,X2))
    then knows_current(passwd_old(X1,X2))
7. __type_28(passwd_old(X1,X2))
    then __type_28(passwd_old(X1,X2))
      [where __type_28(X1) :- testable_current(X1).]
8. testable_current(passwd_old(X1,X2))
    then testable_current(passwd_old(X1,X2))
9. __def_20(passwd_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_20(passwd_old(X1,X2))
      [where __def_20(passwd_old(X3,X1)) :- knows_old(cons(X3,cons(X2,nil))).]
10. __type_18(passwd_old(X1,X2))
    then __type_18(passwd_old(X1,X2))
      [where __type_18(X2) :- knows_current(cons(X1,cons(X2,nil))).]
11. __def_16(passwd_old(X1,X2)) :- knows_old(X1)
    If  knows_old X1
    then __def_16(passwd_old(X1,X2))
      [where __def_16(passwd_old(X3,X2)) :- knows_old(cons(X3,cons(enc(X1,passwd_old(X3,X2)),nil))).]
. lemma 1:
1. __def_121(sym).
    Infer __def_121(sym) using __def_121(sym).
. lemma 2:
2. __def_33(sym).
    Infer __def_33(sym) using __def_33(sym).
. lemma 3:
3. __type_29(X1) :- __def_64 (X1,X2), testable_current(X2).
    Examine all ways of building __def_64 (X1,X2) in the body.
    The 3 possibilities are:
    __def_64(X1,X2) :- __def_13(X1), knows_current(X2).
    __def_64(X1,X2) :- __def_13(X1), __def_17(X2).
    __def_64(X1,X2) :- agent(X1), knows_current(X2).
3.1. __type_29(X1) :- __def_13(X1), knows_current(X2), testable_current(X2).
      Because the following simpler clause holds:
3.1.1. __type_29(X1) :- __def_13(X1).
        By induction on X1 satisfying __def_13, must start with session_old.
3.1.1.1. __type_29(session_old(X1,X2)) :- __def_13(session_old(X1,X2)).
          __def_13(session_old(X1,X2)) must be by __def_13(session_old(X1,X2)) :- agent(X1), agent(X2).
3.1.1.1.1. __type_29(session_old(X1,X2)) :- agent(X1), agent(X2).
            Infer __type_29(session_old(X1,X2)) using __type_29(session_old(X1,X2)) :- agent(X1), agent(X2).
3.1.1.1.1.1. agent(X1) :- agent(X1), agent(X2).
              Because the following simpler clause holds:
3.1.1.1.1.1.1. agent(X1) :- agent(X1). is a tautology.
3.1.1.1.1.2. agent(X2) :- agent(X1), agent(X2).
              Because the following simpler clause holds:
3.1.1.1.1.2.1. agent(X2) :- agent(X2). is a tautology.
3.2. __type_29(X1) :- __def_13(X1), __def_17(X2), testable_current(X2).
      Because the following simpler clause holds:
3.2.1. __type_29(X1) :- __def_13(X1).: see 3.1.1.
3.3. __type_29(X1) :- agent(X1), knows_current(X2), testable_current(X2).
      Because the following simpler clause holds:
3.3.1. __type_29(X1) :- agent(X1).
        By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
3.3.1.1. __type_29(i) :- agent(i).
          agent(i) must be by agent(i).
3.3.1.1.1. __type_29(i).
            Infer __type_29(i) using __type_29(i).
3.3.1.2. __type_29(alice) :- agent(alice).
          agent(alice) must be by agent(alice).
3.3.1.2.1. __type_29(alice).
            Infer __type_29(alice) using __type_29(alice).
3.3.1.3. __type_29(bob) :- agent(bob).
          agent(bob) must be by agent(bob).
3.3.1.3.1. __type_29(bob).
            Infer __type_29(bob) using __type_29(bob).
3.3.1.4. __type_29(server) :- agent(server).
          agent(server) must be by agent(server).
3.3.1.4.1. __type_29(server).
            Infer __type_29(server) using __type_29(server).
. lemma 4:
4. __def_59(pub).
    Infer __def_59(pub) using __def_59(pub).
. lemma 5:
5. __def_27 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).
    Equivalent to:
5.1. __def_27 (X1,X2,X3) :- knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).
      knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
5.1.1. __def_27 (X1,X2,X3) :- knows_old(X1), knows_old(cons(enc(X4,passwd_old(X1,X3)),nil)), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).
        knows_old(cons(enc(X4,passwd_old(X1,X3)),nil)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
5.1.1.1. __def_27 (X1,X2,X3) :- knows_old(enc(X4,passwd_old(X1,X3))), knows_old(nil), knows_old(X1), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).
          Equivalent to:
5.1.1.1.1. __def_27 (X1,X2,X3) :- knows_old(X1), knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(enc(X4,passwd_old(X1,X3))), knows_old(nil).
            This is implied by:
5.1.1.1.1.1. __def_27 (X1,X2,X3) :- knows_old(X1), knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(enc(X4,passwd_old(X1,X3))).
              Examine all ways of building knows_old(crypt(X2,key(sym,r_old(X1,X3)))) in the body.
              The 4 possibilities are:
              knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
5.1.1.1.1.1.1. __def_27 (X1,X2,X3) :- __def_28(X2), __def_29(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                Infer __def_27 (X1,X2,X3) using __def_27(X1,X2,X3) :- knows_old(X1), __def_36(X2).
5.1.1.1.1.1.1.1. knows_old(X1) :- __def_28(X2), __def_29(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                  Because the following simpler clause holds:
5.1.1.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1). is a tautology.
5.1.1.1.1.1.1.2. __def_36(X2) :- __def_28(X2), __def_29(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                  Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1. __def_36(X1) :- __def_28(X1).
                    By induction on X2 satisfying __def_28, must start with cons.
5.1.1.1.1.1.1.2.1.1. __def_36(cons(X1,X2)) :- __def_28(cons(X1,X2)).
                      __def_28(cons(X1,X2)) must be by __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
5.1.1.1.1.1.1.2.1.1.1. __def_36(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
                        Infer __def_36(cons(X1,X2)) using __def_36(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
5.1.1.1.1.1.1.2.1.1.1.1. __type_6(X1) :- __type_5(X1), __def_30(X2).
                          Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.1.1. __type_6(X1) :- __type_5(X1).
                            Without any induction hypothesis:
5.1.1.1.1.1.1.2.1.1.1.1.1.1. __type_6(X1) :- __type_5(X1).
                              By induction on X1 satisfying __type_5, X1 must start with nonceb_old, cons or noncea_old.
5.1.1.1.1.1.1.2.1.1.1.1.1.1.1. __type_6(nonceb_old(X1,X2)) :- __type_5(nonceb_old(X1,X2)).
                                __type_5(nonceb_old(X1,X2)) must be by __type_5(nonceb_old(X1,X2)) :- knows_old(X1).
5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1. __type_6(nonceb_old(X1,X2)) :- knows_old(X1).
                                  Infer __type_6(nonceb_old(X1,X2)) using __type_6(nonceb_old(X1,X2)) :- knows_old(X1).
5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
5.1.1.1.1.1.1.2.1.1.1.1.1.1.2. __type_6(cons(X1,X2)) :- __type_5(cons(X1,X2)).
                                __type_5(cons(X1,X2)) must be by __type_5(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1. __type_6(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
                                  Infer __type_6(cons(X1,X2)) using __type_6(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1. __type_5(X1) :- __type_5(X1), __def_30(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1.1. __type_5(X1) :- __type_5(X1). is a tautology.
5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2. __def_30(X2) :- __type_5(X1), __def_30(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.1. __def_30(X2) :- __def_30(X2). is a tautology.
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3. __type_6(noncea_old(X1,X2)) :- __type_5(noncea_old(X1,X2)).
                                __type_5(noncea_old(X1,X2)) must be by __type_5(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1. __type_6(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
                                  Infer __type_6(noncea_old(X1,X2)) using __type_6(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.1. agent(X1) :- agent(X1), __type_1(X1), agent(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.2. __type_1(X1) :- agent(X1), __type_1(X1), agent(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.2.1. __type_1(X1) :- __type_1(X1). is a tautology.
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.3. agent(X2) :- agent(X1), __type_1(X1), agent(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
5.1.1.1.1.1.1.2.1.1.1.2. __def_38(X2) :- __type_5(X1), __def_30(X2).
                          Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.2.1. __def_38(X2) :- __def_30(X2).
                            Without any induction hypothesis:
5.1.1.1.1.1.1.2.1.1.1.2.1.1. __def_38(X1) :- __def_30(X1).
                              By induction on X2 satisfying __def_30, must start with cons.
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1. __def_38(cons(X1,X2)) :- __def_30(cons(X1,X2)).
                                __def_30(cons(X1,X2)) must be by __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1. __def_38(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
                                  Infer __def_38(cons(X1,X2)) using __def_38(cons(X1,X2)) :- __def_39(X1), __def_40(X2).
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1. __def_39(X1) :- __def_31(X1), __def_32(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1. __def_39(X1) :- __def_31(X1).
                                      Without any induction hypothesis:
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1. __def_39(X1) :- __def_31(X1).
                                        By induction on X1 satisfying __def_31, must start with nonceb_old.
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1. __def_39(nonceb_old(X1,X2)) :- __def_31(nonceb_old(X1,X2)).
                                          __def_31(nonceb_old(X1,X2)) must be by __def_31(nonceb_old(X1,X2)) :- knows_old(X1).
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1. __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
                                            Infer __def_39(nonceb_old(X1,X2)) using __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.2. __def_40(X2) :- __def_31(X1), __def_32(X2).
                                    Because the following simpler clause holds:
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.2.1. __def_40(X2) :- __def_32(X2).
                                      Without any induction hypothesis:
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.2.1.1. __def_40(X1) :- __def_32(X1).
                                        By induction on X2 satisfying __def_32, must start with nil.
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.2.1.1.1. __def_40(nil) :- __def_32(nil).
                                          __def_32(nil) must be by __def_32(nil).
5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.2.1.1.1.1. __def_40(nil).
                                            Infer __def_40(nil) using __def_40(nil).
5.1.1.1.1.1.2. __def_27 (X1,X2,X3) :- __def_24(X2), __def_25(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                Infer __def_27 (X1,X2,X3) using __def_27(X1,X2,X3) :- knows_old(X1), __def_24(X2).
5.1.1.1.1.1.2.1. knows_old(X1) :- __def_24(X2), __def_25(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                  Because the following simpler clause holds:
5.1.1.1.1.1.2.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
5.1.1.1.1.1.2.2. __def_24(X2) :- __def_24(X2), __def_25(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                  Because the following simpler clause holds:
5.1.1.1.1.1.2.2.1. __def_24(X2) :- __def_24(X2). is a tautology.
5.1.1.1.1.1.3. __def_27 (X1,X2,X3) :- __type_7(X2), __def_44(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                Equivalent to:
5.1.1.1.1.1.3.1. __def_27 (X1,X2,X3) :- __def_44(key(sym,r_old(X1,X3))), __type_7(X2), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                  Infer __def_27 (X1,X2,X3) using __def_27(X1,X2,X3) :- knows_old(X1), __type_7(X2).
5.1.1.1.1.1.3.1.1. knows_old(X1) :- __def_44(key(sym,r_old(X1,X3))), __type_7(X2), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                    Because the following simpler clause holds:
5.1.1.1.1.1.3.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
5.1.1.1.1.1.3.1.2. __type_7(X2) :- __def_44(key(sym,r_old(X1,X3))), __type_7(X2), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                    Because the following simpler clause holds:
5.1.1.1.1.1.3.1.2.1. __type_7(X2) :- __type_7(X2). is a tautology.
5.1.1.1.1.1.4. __def_27 (X1,X2,X3) :- knows_old(X2), knows_old(key(sym,r_old(X1,X3))), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))).
                Equivalent to:
5.1.1.1.1.1.4.1. __def_27 (X1,X2,X3) :- knows_old(X2), knows_old(X1), knows_old(enc(X4,passwd_old(X1,X3))), knows_old(key(sym,r_old(X1,X3))).
                  Examine all ways of building knows_old(enc(X4,passwd_old(X1,X3))) in the body.
                  The 4 possibilities are:
                  knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                  knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                  knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                  knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
5.1.1.1.1.1.4.1.1. __def_27 (X1,X2,X3) :- __def_15(X4), __def_16(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                    This is implied by:
5.1.1.1.1.1.4.1.1.1. __def_27 (X1,X2,X3) :- __def_16(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                      __def_16(passwd_old(X1,X3)) must be by __def_16(passwd_old(X1,X2)) :- knows_old(X1).
5.1.1.1.1.1.4.1.1.1.1. __def_27 (X1,X2,X3) :- knows_old(X1), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                        Equivalent to:
5.1.1.1.1.1.4.1.1.1.1.1. __def_27 (X1,X2,X3) :- knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                          Examine all ways of building knows_old(key(sym,r_old(X1,X3))) in the body.
                          The 2 possibilities are:
                          knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                          knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
5.1.1.1.1.1.4.1.1.1.1.1.1. __def_27 (X1,X2,X3) :- __def_51(sym), agent(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                            This is implied by:
5.1.1.1.1.1.4.1.1.1.1.1.1.1. __def_27 (X1,X2,X3) :- agent(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                              agent(r_old(X1,X3)) is impossible.
5.1.1.1.1.1.4.1.1.1.1.1.2. __def_27 (X1,X2,X3) :- __def_62(sym), __def_63(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                            This is implied by:
5.1.1.1.1.1.4.1.1.1.1.1.2.1. __def_27 (X1,X2,X3) :- __def_63(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                              __def_63(r_old(X1,X3)) is impossible.
5.1.1.1.1.1.4.1.2. __def_27 (X1,X2,X3) :- __def_19(X4), __def_20(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                    This is implied by:
5.1.1.1.1.1.4.1.2.1. __def_27 (X1,X2,X3) :- __def_20(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                      __def_20(passwd_old(X1,X3)) must be by __def_20(passwd_old(X1,X2)) :- knows_old(X1).
5.1.1.1.1.1.4.1.2.1.1. __def_27 (X1,X2,X3) :- knows_old(X1), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).: see 5.1.1.1.1.1.4.1.1.1.1.
5.1.1.1.1.1.4.1.3. __def_27 (X1,X2,X3) :- __def_10(X4), __def_11(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                    This is implied by:
5.1.1.1.1.1.4.1.3.1. __def_27 (X1,X2,X3) :- __def_11(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                      __def_11(passwd_old(X1,X3)) must be by __def_11(passwd_old(X1,X2)) :- agent(X1), agent(X2).
5.1.1.1.1.1.4.1.3.1.1. __def_27 (X1,X2,X3) :- agent(X1), agent(X3), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                        Equivalent to:
5.1.1.1.1.1.4.1.3.1.1.1. __def_27 (X1,X2,X3) :- agent(X3), agent(X1), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                          Examine all ways of building knows_old(key(sym,r_old(X1,X3))) in the body.
                          The 2 possibilities are:
                          knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                          knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
5.1.1.1.1.1.4.1.3.1.1.1.1. __def_27 (X1,X2,X3) :- __def_51(sym), agent(r_old(X1,X3)), agent(X3), agent(X1), knows_old(X2), knows_old(X1).
                            Equivalent to:
5.1.1.1.1.1.4.1.3.1.1.1.1.1. __def_27 (X1,X2,X3) :- __def_51(sym), agent(X3), agent(X1), agent(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                              This is implied by:
5.1.1.1.1.1.4.1.3.1.1.1.1.1.1. __def_27 (X1,X2,X3) :- agent(X3), agent(X1), agent(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                                agent(r_old(X1,X3)) is impossible.
5.1.1.1.1.1.4.1.3.1.1.1.2. __def_27 (X1,X2,X3) :- __def_62(sym), __def_63(r_old(X1,X3)), agent(X3), agent(X1), knows_old(X2), knows_old(X1).
                            This is implied by:
5.1.1.1.1.1.4.1.3.1.1.1.2.1. __def_27 (X1,X2,X3) :- __def_63(r_old(X1,X3)), agent(X3), agent(X1), knows_old(X2), knows_old(X1).
                              __def_63(r_old(X1,X3)) is impossible.
5.1.1.1.1.1.4.1.4. __def_27 (X1,X2,X3) :- knows_old(X4), knows_old(passwd_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
                    Equivalent to:
5.1.1.1.1.1.4.1.4.1. __def_27 (X1,X2,X3) :- knows_old(X2), knows_old(X1), knows_old(X4), knows_old(key(sym,r_old(X1,X3))), knows_old(passwd_old(X1,X3)).
                      This is implied by:
5.1.1.1.1.1.4.1.4.1.1. __def_27 (X1,X2,X3) :- knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))), knows_old(passwd_old(X1,X3)).
                        Examine all ways of building knows_old(key(sym,r_old(X1,X3))) in the body.
                        The 2 possibilities are:
                        knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                        knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
5.1.1.1.1.1.4.1.4.1.1.1. __def_27 (X1,X2,X3) :- __def_51(sym), agent(r_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(passwd_old(X1,X3)).
                          This is implied by:
5.1.1.1.1.1.4.1.4.1.1.1.1. __def_27 (X1,X2,X3) :- agent(r_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(passwd_old(X1,X3)).
                            agent(r_old(X1,X3)) is impossible.
5.1.1.1.1.1.4.1.4.1.1.2. __def_27 (X1,X2,X3) :- __def_62(sym), __def_63(r_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(passwd_old(X1,X3)).
                          This is implied by:
5.1.1.1.1.1.4.1.4.1.1.2.1. __def_27 (X1,X2,X3) :- __def_63(r_old(X1,X3)), knows_old(X2), knows_old(X1), knows_old(passwd_old(X1,X3)).
                            __def_63(r_old(X1,X3)) is impossible.
. lemma 6:
6. __def_84 (X1,X2,X3) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))).
    Examine all ways of building knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))) in the body.
    The 3 possibilities are:
    knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
    knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
    knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
6.1. __def_84 (X1,X2,X3) :- __def_80(crypt(X3,key(pub,session_current(X1,X2)))), __def_81(passwd_current(X1,X2)).
      __def_80(crypt(X3,key(pub,session_current(X1,X2)))) must be by __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
6.1.1. __def_84 (X1,X2,X3) :- __def_82(X3), __def_83(key(pub,session_current(X1,X2))), __def_81(passwd_current(X1,X2)).
        Equivalent to:
6.1.1.1. __def_84 (X1,X2,X3) :- __def_81(passwd_current(X1,X2)), __def_82(X3), __def_83(key(pub,session_current(X1,X2))).
          __def_81(passwd_current(X1,X2)) must be by __def_81(passwd_current(X1,X2)) :- knows_current(X1).
6.1.1.1.1. __def_84 (X1,X2,X3) :- knows_current(X1), __def_82(X3), __def_83(key(pub,session_current(X1,X2))).
            Equivalent to:
6.1.1.1.1.1. __def_84 (X1,X2,X3) :- __def_82(X3), __def_83(key(pub,session_current(X1,X2))), knows_current(X1).
              __def_83(key(pub,session_current(X1,X2))) is impossible.
6.2. __def_84 (X1,X2,X3) :- knows_current(crypt(X3,key(pub,session_current(X1,X2)))), knows_current(passwd_current(X1,X2)).
      Examine all ways of building knows_current(crypt(X3,key(pub,session_current(X1,X2)))) in the body.
      The 8 possibilities are:
      knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
      knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
      knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
      knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
      knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
      knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
      knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
      knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
6.2.1. __def_84 (X1,X2,X3) :- __type_22(X3), __def_105(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        Equivalent to:
6.2.1.1. __def_84 (X1,X2,X3) :- __def_105(key(pub,session_current(X1,X2))), __type_22(X3), knows_current(passwd_current(X1,X2)).
          __def_105(key(pub,session_current(X1,X2))) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
6.2.1.1.1. __def_84 (X1,X2,X3) :- __def_106(pub), __type_23(session_current(X1,X2)), __type_22(X3), knows_current(passwd_current(X1,X2)).
            Equivalent to:
6.2.1.1.1.1. __def_84 (X1,X2,X3) :- __def_106(pub), __type_22(X3), __type_23(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              This is implied by:
6.2.1.1.1.1.1. __def_84 (X1,X2,X3) :- __type_22(X3), __type_23(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
                __type_23(session_current(X1,X2)) is impossible.
6.2.2. __def_84 (X1,X2,X3) :- __def_28(X3), __def_29(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        __def_29(key(pub,session_current(X1,X2))) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
6.2.2.1. __def_84 (X1,X2,X3) :- __def_33(pub), __def_34(session_current(X1,X2)), __def_28(X3), knows_current(passwd_current(X1,X2)).
          Equivalent to:
6.2.2.1.1. __def_84 (X1,X2,X3) :- __def_28(X3), __def_33(pub), __def_34(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
            This is implied by:
6.2.2.1.1.1. __def_84 (X1,X2,X3) :- __def_28(X3), __def_34(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              __def_34(session_current(X1,X2)) is impossible.
6.2.3. __def_84 (X1,X2,X3) :- __def_85(X3), __def_86(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        __def_86(key(pub,session_current(X1,X2))) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
6.2.3.1. __def_84 (X1,X2,X3) :- __def_87(pub), __type_19(session_current(X1,X2)), __def_85(X3), knows_current(passwd_current(X1,X2)).
          Equivalent to:
6.2.3.1.1. __def_84 (X1,X2,X3) :- __def_85(X3), __def_87(pub), __type_19(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
            This is implied by:
6.2.3.1.1.1. __def_84 (X1,X2,X3) :- __def_85(X3), __type_19(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              __type_19(session_current(X1,X2)) is impossible.
6.2.4. __def_84 (X1,X2,X3) :- __def_17(X3), __type_2(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        __type_2(key(pub,session_current(X1,X2))) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
6.2.4.1. __def_84 (X1,X2,X3) :- __def_12(pub), __def_13(session_current(X1,X2)), __def_17(X3), knows_current(passwd_current(X1,X2)).
          This is implied by:
6.2.4.1.1. __def_84 (X1,X2,X3) :- __def_13(session_current(X1,X2)), __def_17(X3), knows_current(passwd_current(X1,X2)).
            __def_13(session_current(X1,X2)) is impossible.
6.2.5. __def_84 (X1,X2,X3) :- __def_24(X3), __def_25(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        __def_25(key(pub,session_current(X1,X2))) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
6.2.5.1. __def_84 (X1,X2,X3) :- __def_26(pub), __type_4(session_current(X1,X2)), __def_24(X3), knows_current(passwd_current(X1,X2)).
          Equivalent to:
6.2.5.1.1. __def_84 (X1,X2,X3) :- __def_24(X3), __def_26(pub), __type_4(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
            This is implied by:
6.2.5.1.1.1. __def_84 (X1,X2,X3) :- __def_24(X3), __type_4(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              __type_4(session_current(X1,X2)) is impossible.
6.2.6. __def_84 (X1,X2,X3) :- __type_7(X3), __def_44(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        Equivalent to:
6.2.6.1. __def_84 (X1,X2,X3) :- __def_44(key(pub,session_current(X1,X2))), __type_7(X3), knows_current(passwd_current(X1,X2)).
          __def_44(key(pub,session_current(X1,X2))) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
6.2.6.1.1. __def_84 (X1,X2,X3) :- __def_45(pub), __type_8(session_current(X1,X2)), __type_7(X3), knows_current(passwd_current(X1,X2)).
            Equivalent to:
6.2.6.1.1.1. __def_84 (X1,X2,X3) :- __def_45(pub), __type_7(X3), __type_8(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              This is implied by:
6.2.6.1.1.1.1. __def_84 (X1,X2,X3) :- __type_7(X3), __type_8(session_current(X1,X2)), knows_current(passwd_current(X1,X2)).
                __type_8(session_current(X1,X2)) is impossible.
6.2.7. __def_84 (X1,X2,X3) :- __def_97(X3), __def_98(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        __def_98(key(pub,session_current(X1,X2))) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
6.2.7.1. __def_84 (X1,X2,X3) :- __def_102(pub), __def_103(session_current(X1,X2)), __def_97(X3), knows_current(passwd_current(X1,X2)).
          This is implied by:
6.2.7.1.1. __def_84 (X1,X2,X3) :- __def_103(session_current(X1,X2)), __def_97(X3), knows_current(passwd_current(X1,X2)).
            __def_103(session_current(X1,X2)) is impossible.
6.2.8. __def_84 (X1,X2,X3) :- knows_current(X3), knows_current(key(pub,session_current(X1,X2))), knows_current(passwd_current(X1,X2)).
        Examine all ways of building knows_current(key(pub,session_current(X1,X2))) in the body.
        The 3 possibilities are:
        knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
        knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
        knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
6.2.8.1. __def_84 (X1,X2,X3) :- __def_51(pub), agent(session_current(X1,X2)), knows_current(X3), knows_current(passwd_current(X1,X2)).
          This is implied by:
6.2.8.1.1. __def_84 (X1,X2,X3) :- agent(session_current(X1,X2)), knows_current(X3), knows_current(passwd_current(X1,X2)).
            agent(session_current(X1,X2)) is impossible.
6.2.8.2. __def_84 (X1,X2,X3) :- __def_62(pub), __def_63(session_current(X1,X2)), knows_current(X3), knows_current(passwd_current(X1,X2)).
          This is implied by:
6.2.8.2.1. __def_84 (X1,X2,X3) :- __def_63(session_current(X1,X2)), knows_current(X3), knows_current(passwd_current(X1,X2)).
            __def_63(session_current(X1,X2)) is impossible.
6.2.8.3. __def_84 (X1,X2,X3) :- __def_12(pub), __def_13(session_current(X1,X2)), knows_current(X3), knows_current(passwd_current(X1,X2)).
          This is implied by:
6.2.8.3.1. __def_84 (X1,X2,X3) :- __def_13(session_current(X1,X2)), knows_current(X3), knows_current(passwd_current(X1,X2)).
            __def_13(session_current(X1,X2)) is impossible.
6.3. __def_84 (X1,X2,X3) :- __def_76(crypt(X3,key(pub,session_current(X1,X2)))), __def_77(passwd_current(X1,X2)).
      __def_76(crypt(X3,key(pub,session_current(X1,X2)))) must be by __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
6.3.1. __def_84 (X1,X2,X3) :- __def_78(X3), __type_17(key(pub,session_current(X1,X2))), __def_77(passwd_current(X1,X2)).
        Equivalent to:
6.3.1.1. __def_84 (X1,X2,X3) :- __def_77(passwd_current(X1,X2)), __def_78(X3), __type_17(key(pub,session_current(X1,X2))).
          __def_77(passwd_current(X1,X2)) must be by __def_77(passwd_current(X1,X2)) :- knows_current(X1).
6.3.1.1.1. __def_84 (X1,X2,X3) :- knows_current(X1), __def_78(X3), __type_17(key(pub,session_current(X1,X2))).
            Equivalent to:
6.3.1.1.1.1. __def_84 (X1,X2,X3) :- __def_78(X3), __type_17(key(pub,session_current(X1,X2))), knows_current(X1).
              __type_17(key(pub,session_current(X1,X2))) must be by __type_17(key(X1,X2)) :- __def_12(X1), __def_74(X2).
6.3.1.1.1.1.1. __def_84 (X1,X2,X3) :- __def_12(pub), __def_74(session_current(X1,X2)), __def_78(X3), knows_current(X1).
                This is implied by:
6.3.1.1.1.1.1.1. __def_84 (X1,X2,X3) :- __def_74(session_current(X1,X2)), __def_78(X3), knows_current(X1).
                  __def_74(session_current(X1,X2)) must be by __def_74(session_current(X1,X2)) :- agent(X1), agent(X2).
6.3.1.1.1.1.1.1.1. __def_84 (X1,X2,X3) :- agent(X1), agent(X2), __def_78(X3), knows_current(X1).
                    Equivalent to:
6.3.1.1.1.1.1.1.1.1. __def_84 (X1,X2,X3) :- __def_78(X3), agent(X2), agent(X1), knows_current(X1).
                      Infer __def_84 (X1,X2,X3) using __def_84(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_78(X3).
6.3.1.1.1.1.1.1.1.1.1. agent(X1) :- __def_78(X3), agent(X2), agent(X1), knows_current(X1).
                        Because the following simpler clause holds:
6.3.1.1.1.1.1.1.1.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
6.3.1.1.1.1.1.1.1.1.2. __type_1(X1) :- __def_78(X3), agent(X2), agent(X1), knows_current(X1).
                        Because the following simpler clause holds:
6.3.1.1.1.1.1.1.1.1.2.1. __type_1(X1) :- agent(X1).
                          By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
6.3.1.1.1.1.1.1.1.1.2.1.1. __type_1(i) :- agent(i).
                            agent(i) must be by agent(i).
6.3.1.1.1.1.1.1.1.1.2.1.1.1. __type_1(i).
                              Infer __type_1(i) using __type_1(i).
6.3.1.1.1.1.1.1.1.1.2.1.2. __type_1(alice) :- agent(alice).
                            agent(alice) must be by agent(alice).
6.3.1.1.1.1.1.1.1.1.2.1.2.1. __type_1(alice).
                              Infer __type_1(alice) using __type_1(alice).
6.3.1.1.1.1.1.1.1.1.2.1.3. __type_1(bob) :- agent(bob).
                            agent(bob) must be by agent(bob).
6.3.1.1.1.1.1.1.1.1.2.1.3.1. __type_1(bob).
                              Infer __type_1(bob) using __type_1(bob).
6.3.1.1.1.1.1.1.1.1.2.1.4. __type_1(server) :- agent(server).
                            agent(server) must be by agent(server).
6.3.1.1.1.1.1.1.1.1.2.1.4.1. __type_1(server).
                              Infer __type_1(server) using __type_1(server).
6.3.1.1.1.1.1.1.1.1.3. agent(X2) :- __def_78(X3), agent(X2), agent(X1), knows_current(X1).
                        Because the following simpler clause holds:
6.3.1.1.1.1.1.1.1.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
6.3.1.1.1.1.1.1.1.1.4. __def_78(X3) :- __def_78(X3), agent(X2), agent(X1), knows_current(X1).
                        Because the following simpler clause holds:
6.3.1.1.1.1.1.1.1.1.4.1. __def_78(X3) :- __def_78(X3). is a tautology.
. lemma 7:
7. __type_13(X1) :- testable_old(X1).
    By induction on X1 satisfying testable_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
7.1. __type_13(dec(X1,X2)) :- testable_old(dec(X1,X2)).
      testable_old(dec(X1,X2)) must be by testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
7.1.1. __type_13(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
        Infer __type_13(dec(X1,X2)) using __type_13(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
7.1.1.1. testable_old(X1) :- testable_old(X1), knows_old(X2).
          Because the following simpler clause holds:
7.1.1.1.1. testable_old(X1) :- testable_old(X1). is a tautology.
7.1.1.2. knows_old(X2) :- testable_old(X1), knows_old(X2).
          Because the following simpler clause holds:
7.1.1.2.1. knows_old(X2) :- knows_old(X2). is a tautology.
7.2. __type_13(s(X1)) :- testable_old(s(X1)).
      testable_old(s(X1)) must be by testable_old(s(X)) :- testable_old(X).
7.2.1. __type_13(s(X1)) :- testable_old(X1).
        Infer __type_13(s(X1)) using __type_13(s(X)) :- testable_old(X).
7.2.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
7.3. __type_13(nil) :- testable_old(nil).
      testable_old(nil) must be by testable_old(nil).
7.3.1. __type_13(nil).
        Infer __type_13(nil) using __type_13(nil).
7.4. __type_13(i) :- testable_old(i).
      testable_old(i) must be by testable_old(i).
7.4.1. __type_13(i).
        Infer __type_13(i) using __type_13(i).
7.5. __type_13(p(X1)) :- testable_old(p(X1)).
      testable_old(p(X1)) must be by testable_old(p(X)) :- testable_old(X).
7.5.1. __type_13(p(X1)) :- testable_old(X1).
        Infer __type_13(p(X1)) using __type_13(p(X)) :- testable_old(X).
7.5.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
7.6. __type_13(key(X1,X2)) :- testable_old(key(X1,X2)).
      Examine all ways of building testable_old(key(X1,X2)) in the body.
      The 3 possibilities are:
      testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
      testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
      testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
7.6.1. __type_13(key(X1,X2)) :- __def_51(X1), agent(X2).
        Infer __type_13(key(X1,X2)) using __type_13(key(X1,X2)) :- __def_51(X1), agent(X2).
7.6.1.1. __def_51(X1) :- __def_51(X1), agent(X2).
          Because the following simpler clause holds:
7.6.1.1.1. __def_51(X1) :- __def_51(X1). is a tautology.
7.6.1.2. agent(X2) :- __def_51(X1), agent(X2).
          Because the following simpler clause holds:
7.6.1.2.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
7.6.2. __type_13(key(X1,X2)) :- __def_61(X1), __type_16(X2).
        Infer __type_13(key(X1,X2)) using __type_13(key(X1,X2)) :- __def_61(X1), __type_16(X2).
7.6.2.1. __def_61(X1) :- __def_61(X1), __type_16(X2).
          Because the following simpler clause holds:
7.6.2.1.1. __def_61(X1) :- __def_61(X1). is a tautology.
7.6.2.2. __type_16(X2) :- __def_61(X1), __type_16(X2).
          Because the following simpler clause holds:
7.6.2.2.1. __type_16(X2) :- __type_16(X2). is a tautology.
7.6.3. __type_13(key(X1,X2)) :- __def_58(X1), __type_14(X2).
        Infer __type_13(key(X1,X2)) using __type_13(key(X1,X2)) :- __def_58(X1), __type_14(X2).
7.6.3.1. __def_58(X1) :- __def_58(X1), __type_14(X2).
          Because the following simpler clause holds:
7.6.3.1.1. __def_58(X1) :- __def_58(X1). is a tautology.
7.6.3.2. __type_14(X2) :- __def_58(X1), __type_14(X2).
          Because the following simpler clause holds:
7.6.3.2.1. __type_14(X2) :- __type_14(X2). is a tautology.
7.7. __type_13(cons(X1,X2)) :- testable_old(cons(X1,X2)).
      Examine all ways of building testable_old(cons(X1,X2)) in the body.
      The 2 possibilities are:
      testable_old(cons(X1,X2)) :- testable_old(X1).
      testable_old(cons(X1,X2)) :- testable_old(X2).
7.7.1. __type_13(cons(X1,X2)) :- testable_old(X1).
        Infer __type_13(cons(X1,X2)) using __type_13(cons(X1,X2)) :- testable_old(X1).
7.7.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
7.7.2. __type_13(cons(X1,X2)) :- testable_old(X2).
        Infer __type_13(cons(X1,X2)) using __type_13(cons(X1,X2)) :- testable_old(X2).
7.7.2.1. testable_old(X2) :- testable_old(X2). is a tautology.
7.8. __type_13(crypt(X1,X2)) :- testable_old(crypt(X1,X2)).
      Examine all ways of building testable_old(crypt(X1,X2)) in the body.
      The 6 possibilities are:
      testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
      testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
      testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
      testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
      testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
      testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
7.8.1. __type_13(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
        Infer __type_13(crypt(X1,X2)) using __type_13(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
7.8.1.1. __type_12(X1) :- __type_12(X1), __def_54(X2).
          Because the following simpler clause holds:
7.8.1.1.1. __type_12(X1) :- __type_12(X1). is a tautology.
7.8.1.2. __def_54(X2) :- __type_12(X1), __def_54(X2).
          Because the following simpler clause holds:
7.8.1.2.1. __def_54(X2) :- __def_54(X2). is a tautology.
7.8.2. __type_13(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        Infer __type_13(crypt(X1,X2)) using __type_13(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
7.8.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).
          Because the following simpler clause holds:
7.8.2.1.1. __def_28(X1) :- __def_28(X1). is a tautology.
7.8.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).
          Because the following simpler clause holds:
7.8.2.2.1. __def_29(X2) :- __def_29(X2). is a tautology.
7.8.3. __type_13(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        Infer __type_13(crypt(X1,X2)) using __type_13(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
7.8.3.1. __def_24(X1) :- __def_24(X1), __def_25(X2).
          Because the following simpler clause holds:
7.8.3.1.1. __def_24(X1) :- __def_24(X1). is a tautology.
7.8.3.2. __def_25(X2) :- __def_24(X1), __def_25(X2).
          Because the following simpler clause holds:
7.8.3.2.1. __def_25(X2) :- __def_25(X2). is a tautology.
7.8.4. __type_13(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        Infer __type_13(crypt(X1,X2)) using __type_13(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
7.8.4.1. __type_7(X1) :- __type_7(X1), __def_44(X2).
          Because the following simpler clause holds:
7.8.4.1.1. __type_7(X1) :- __type_7(X1). is a tautology.
7.8.4.2. __def_44(X2) :- __type_7(X1), __def_44(X2).
          Because the following simpler clause holds:
7.8.4.2.1. __def_44(X2) :- __def_44(X2). is a tautology.
7.8.5. __type_13(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
        Infer __type_13(crypt(X1,X2)) using __type_13(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
7.8.5.1. knows_old(X1) :- knows_old(X1), knows_old(X2).
          Because the following simpler clause holds:
7.8.5.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
7.8.5.2. knows_old(X2) :- knows_old(X1), knows_old(X2).
          Because the following simpler clause holds:
7.8.5.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
7.8.6. __type_13(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
        Infer __type_13(crypt(X1,X2)) using __type_13(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
7.8.6.1. __type_11(X1) :- __type_11(X1), __def_52(X2).
          Because the following simpler clause holds:
7.8.6.1.1. __type_11(X1) :- __type_11(X1). is a tautology.
7.8.6.2. __def_52(X2) :- __type_11(X1), __def_52(X2).
          Because the following simpler clause holds:
7.8.6.2.1. __def_52(X2) :- __def_52(X2). is a tautology.
7.9. __type_13(alice) :- testable_old(alice).
      testable_old(alice) must be by testable_old(alice).
7.9.1. __type_13(alice).
        Infer __type_13(alice) using __type_13(alice).
7.10. __type_13(enc(X1,X2)) :- testable_old(enc(X1,X2)).
       Examine all ways of building testable_old(enc(X1,X2)) in the body.
       The 4 possibilities are:
       testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
       testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
       testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
       testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
7.10.1. __type_13(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
         Infer __type_13(enc(X1,X2)) using __type_13(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
7.10.1.1. __def_15(X1) :- __def_15(X1), __def_16(X2).
           Because the following simpler clause holds:
7.10.1.1.1. __def_15(X1) :- __def_15(X1). is a tautology.
7.10.1.2. __def_16(X2) :- __def_15(X1), __def_16(X2).
           Because the following simpler clause holds:
7.10.1.2.1. __def_16(X2) :- __def_16(X2). is a tautology.
7.10.2. __type_13(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
         Infer __type_13(enc(X1,X2)) using __type_13(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
7.10.2.1. __def_19(X1) :- __def_19(X1), __def_20(X2).
           Because the following simpler clause holds:
7.10.2.1.1. __def_19(X1) :- __def_19(X1). is a tautology.
7.10.2.2. __def_20(X2) :- __def_19(X1), __def_20(X2).
           Because the following simpler clause holds:
7.10.2.2.1. __def_20(X2) :- __def_20(X2). is a tautology.
7.10.3. __type_13(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
         Infer __type_13(enc(X1,X2)) using __type_13(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
7.10.3.1. __def_10(X1) :- __def_10(X1), __def_11(X2).
           Because the following simpler clause holds:
7.10.3.1.1. __def_10(X1) :- __def_10(X1). is a tautology.
7.10.3.2. __def_11(X2) :- __def_10(X1), __def_11(X2).
           Because the following simpler clause holds:
7.10.3.2.1. __def_11(X2) :- __def_11(X2). is a tautology.
7.10.4. __type_13(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
         Infer __type_13(enc(X1,X2)) using __type_13(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
7.10.4.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
7.10.4.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
7.11. __type_13(bob) :- testable_old(bob).
       testable_old(bob) must be by testable_old(bob).
7.11.1. __type_13(bob).
         Infer __type_13(bob) using __type_13(bob).
7.12. __type_13(server) :- testable_old(server).
       testable_old(server) must be by testable_old(server).
7.12.1. __type_13(server).
         Infer __type_13(server) using __type_13(server).
. lemma 8:
8. __def_43 (X1,X2) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).
    Equivalent to:
8.1. __def_43 (X1,X2) :- knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
      Examine all ways of building knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))) in the body.
      The 3 possibilities are:
      knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
      knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
      knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
8.1.1. __def_43 (X1,X2) :- __def_28(cons(noncea_old(X3,X4),cons(X1,nil))), __def_29(key(sym,X2)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
        __def_28(cons(noncea_old(X3,X4),cons(X1,nil))) must be by __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
8.1.1.1. __def_43 (X1,X2) :- __type_5(noncea_old(X3,X4)), __def_30(cons(X1,nil)), __def_29(key(sym,X2)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
          Equivalent to:
8.1.1.1.1. __def_43 (X1,X2) :- __def_29(key(sym,X2)), __def_30(cons(X1,nil)), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
            __def_29(key(sym,X2)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
8.1.1.1.1.1. __def_43 (X1,X2) :- __def_33(sym), __def_34(X2), __def_30(cons(X1,nil)), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
              Equivalent to:
8.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_30(cons(X1,nil)), __def_33(sym), __def_34(X2), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                This is implied by:
8.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_30(cons(X1,nil)), __def_34(X2), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                  __def_30(cons(X1,nil)) must be by __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
8.1.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_31(X1), __def_32(nil), __def_34(X2), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                    Infer __def_43 (X1,X2) using __def_43(X1,X2) :- __def_39(X1), __def_42(X2), __def_17(X2).
8.1.1.1.1.1.1.1.1.1. __def_39(X1) :- __def_31(X1), __def_32(nil), __def_34(X2), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                      Because the following simpler clause holds:
8.1.1.1.1.1.1.1.1.1.1. __def_39(X1) :- __def_31(X1).: see 5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.
8.1.1.1.1.1.1.1.1.2. __def_42(X2) :- __def_31(X1), __def_32(nil), __def_34(X2), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                      Because the following simpler clause holds:
8.1.1.1.1.1.1.1.1.2.1. __def_42(X1) :- __def_34(X1).
                        By induction on X2 satisfying __def_34, must start with r_old.
8.1.1.1.1.1.1.1.1.2.1.1. __def_42(r_old(X1,X2)) :- __def_34(r_old(X1,X2)).
                          __def_34(r_old(X1,X2)) must be by __def_34(r_old(X1,X2)) :- knows_old(X1).
8.1.1.1.1.1.1.1.1.2.1.1.1. __def_42(r_old(X1,X2)) :- knows_old(X1).
                            Infer __def_42(r_old(X1,X2)) using __def_42(r_old(X1,X2)) :- knows_old(X1).
8.1.1.1.1.1.1.1.1.2.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
8.1.1.1.1.1.1.1.1.3. __def_17(X2) :- __def_31(X1), __def_32(nil), __def_34(X2), __type_5(noncea_old(X3,X4)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                      Because the following simpler clause holds:
8.1.1.1.1.1.1.1.1.3.1. __def_17(X1) :- __def_34(X1).
                        By induction on X2 satisfying __def_34, must start with r_old.
8.1.1.1.1.1.1.1.1.3.1.1. __def_17(r_old(X1,X2)) :- __def_34(r_old(X1,X2)).
                          __def_34(r_old(X1,X2)) must be by __def_34(r_old(X1,X2)) :- knows_old(X1).
8.1.1.1.1.1.1.1.1.3.1.1.1. __def_17(r_old(X1,X2)) :- knows_old(X1).
                            Infer __def_17(r_old(X1,X2)) using __def_17(r_old(X1,X2)) :- knows_old(X1).
8.1.1.1.1.1.1.1.1.3.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
8.1.2. __def_43 (X1,X2) :- __type_7(cons(noncea_old(X3,X4),cons(X1,nil))), __def_44(key(sym,X2)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
        Equivalent to:
8.1.2.1. __def_43 (X1,X2) :- __def_44(key(sym,X2)), __type_7(cons(noncea_old(X3,X4),cons(X1,nil))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
          __def_44(key(sym,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
8.1.2.1.1. __def_43 (X1,X2) :- __def_45(sym), __type_8(X2), __type_7(cons(noncea_old(X3,X4),cons(X1,nil))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
            Equivalent to:
8.1.2.1.1.1. __def_43 (X1,X2) :- __def_45(sym), __type_7(cons(noncea_old(X3,X4),cons(X1,nil))), __type_8(X2), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
              This is implied by:
8.1.2.1.1.1.1. __def_43 (X1,X2) :- __type_7(cons(noncea_old(X3,X4),cons(X1,nil))), __type_8(X2), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
                __type_7(cons(noncea_old(X3,X4),cons(X1,nil))) is impossible.
8.1.3. __def_43 (X1,X2) :- knows_old(cons(noncea_old(X3,X4),cons(X1,nil))), knows_old(key(sym,X2)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))).
        Equivalent to:
8.1.3.1. __def_43 (X1,X2) :- knows_old(cons(noncea_old(X3,X4),cons(X1,nil))), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(key(sym,X2)).
          knows_old(cons(noncea_old(X3,X4),cons(X1,nil))) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
8.1.3.1.1. __def_43 (X1,X2) :- knows_old(noncea_old(X3,X4)), knows_old(cons(X1,nil)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(key(sym,X2)).
            Equivalent to:
8.1.3.1.1.1. __def_43 (X1,X2) :- knows_old(cons(X1,nil)), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
              knows_old(cons(X1,nil)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
8.1.3.1.1.1.1. __def_43 (X1,X2) :- knows_old(X1), knows_old(nil), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                Equivalent to:
8.1.3.1.1.1.1.1. __def_43 (X1,X2) :- knows_old(X1), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(key(sym,X2)), knows_old(nil), knows_old(noncea_old(X3,X4)).
                  This is implied by:
8.1.3.1.1.1.1.1.1. __def_43 (X1,X2) :- knows_old(X1), knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                    Examine all ways of building knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))) in the body.
                    The 3 possibilities are:
                    knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                    knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                    knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
8.1.3.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_15(crypt(X2,key(pub,session_old(X3,X4)))), __def_16(passwd_old(X3,X4)), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                      __def_15(crypt(X2,key(pub,session_old(X3,X4)))) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
8.1.3.1.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_17(X2), __type_2(key(pub,session_old(X3,X4))), __def_16(passwd_old(X3,X4)), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                        Equivalent to:
8.1.3.1.1.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_16(passwd_old(X3,X4)), __def_17(X2), __type_2(key(pub,session_old(X3,X4))), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                          This is implied by:
8.1.3.1.1.1.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_17(X2), knows_old(X1), knows_old(key(sym,X2)).
                            Examine all ways of building knows_old(key(sym,X2)) in the body.
                            The 2 possibilities are:
                            knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                            knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
8.1.3.1.1.1.1.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_51(sym), agent(X2), __def_17(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.1.1.1.1.1.1. __def_43 (X1,X2) :- __def_17(X2), __def_51(sym), agent(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1. #false() :- agent(X1), __def_17(X1).
                                  By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
8.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1. #false() :- agent(i), __def_17(i).
                                    agent(i) is impossible.
8.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.2. #false() :- agent(alice), __def_17(alice).
                                    agent(alice) is impossible.
8.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.3. #false() :- agent(bob), __def_17(bob).
                                    agent(bob) is impossible.
8.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.4. #false() :- agent(server), __def_17(server).
                                    agent(server) is impossible.
8.1.3.1.1.1.1.1.1.1.1.1.1.2. __def_43 (X1,X2) :- __def_62(sym), __def_63(X2), __def_17(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.1.1.1.1.2.1. __def_43 (X1,X2) :- __def_17(X2), __def_62(sym), __def_63(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.1.1.1.1.2.1.1. #false() :- __def_17(X1), __def_63(X1).
                                  By induction on X1 satisfying __def_17, must start with r_old.
8.1.3.1.1.1.1.1.1.1.1.1.1.2.1.1.1. #false() :- __def_17(r_old(X1,X2)), __def_63(r_old(X1,X2)).
                                    __def_17(r_old(X1,X2)) is impossible.
8.1.3.1.1.1.1.1.1.2. __def_43 (X1,X2) :- __def_19(crypt(X2,key(pub,session_old(X3,X4)))), __def_20(passwd_old(X3,X4)), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                      __def_19(crypt(X2,key(pub,session_old(X3,X4)))) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
8.1.3.1.1.1.1.1.1.2.1. __def_43 (X1,X2) :- __def_21(X2), __def_22(key(pub,session_old(X3,X4))), __def_20(passwd_old(X3,X4)), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                        Equivalent to:
8.1.3.1.1.1.1.1.1.2.1.1. __def_43 (X1,X2) :- __def_20(passwd_old(X3,X4)), __def_21(X2), __def_22(key(pub,session_old(X3,X4))), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                          This is implied by:
8.1.3.1.1.1.1.1.1.2.1.1.1. __def_43 (X1,X2) :- __def_21(X2), knows_old(X1), knows_old(key(sym,X2)).
                            Examine all ways of building knows_old(key(sym,X2)) in the body.
                            The 2 possibilities are:
                            knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                            knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
8.1.3.1.1.1.1.1.1.2.1.1.1.1. __def_43 (X1,X2) :- __def_51(sym), agent(X2), __def_21(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.2.1.1.1.1.1. __def_43 (X1,X2) :- __def_21(X2), __def_51(sym), agent(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.2.1.1.1.1.1.1. #false() :- agent(X1), __def_21(X1).
                                  By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
8.1.3.1.1.1.1.1.1.2.1.1.1.1.1.1.1. #false() :- agent(i), __def_21(i).
                                    agent(i) is impossible.
8.1.3.1.1.1.1.1.1.2.1.1.1.1.1.1.2. #false() :- agent(alice), __def_21(alice).
                                    agent(alice) is impossible.
8.1.3.1.1.1.1.1.1.2.1.1.1.1.1.1.3. #false() :- agent(bob), __def_21(bob).
                                    agent(bob) is impossible.
8.1.3.1.1.1.1.1.1.2.1.1.1.1.1.1.4. #false() :- agent(server), __def_21(server).
                                    agent(server) is impossible.
8.1.3.1.1.1.1.1.1.2.1.1.1.2. __def_43 (X1,X2) :- __def_62(sym), __def_63(X2), __def_21(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.2.1.1.1.2.1. __def_43 (X1,X2) :- __def_21(X2), __def_62(sym), __def_63(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.2.1.1.1.2.1.1. #false() :- __def_63(X1), __def_21(X1).
                                  By induction on X1 satisfying __def_63, must start with i.
8.1.3.1.1.1.1.1.1.2.1.1.1.2.1.1.1. #false() :- __def_63(i), __def_21(i).
                                    __def_63(i) is impossible.
8.1.3.1.1.1.1.1.1.3. __def_43 (X1,X2) :- knows_old(crypt(X2,key(pub,session_old(X3,X4)))), knows_old(passwd_old(X3,X4)), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)).
                      Equivalent to:
8.1.3.1.1.1.1.1.1.3.1. __def_43 (X1,X2) :- knows_old(X1), knows_old(crypt(X2,key(pub,session_old(X3,X4)))), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                        Examine all ways of building knows_old(crypt(X2,key(pub,session_old(X3,X4)))) in the body.
                        The 4 possibilities are:
                        knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                        knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                        knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                        knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
8.1.3.1.1.1.1.1.1.3.1.1. __def_43 (X1,X2) :- __def_28(X2), __def_29(key(pub,session_old(X3,X4))), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                          This is implied by:
8.1.3.1.1.1.1.1.1.3.1.1.1. __def_43 (X1,X2) :- __def_28(X2), knows_old(X1), knows_old(key(sym,X2)).
                            Examine all ways of building knows_old(key(sym,X2)) in the body.
                            The 2 possibilities are:
                            knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                            knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
8.1.3.1.1.1.1.1.1.3.1.1.1.1. __def_43 (X1,X2) :- __def_51(sym), agent(X2), __def_28(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.1.1.1.1. __def_43 (X1,X2) :- __def_28(X2), __def_51(sym), agent(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.3.1.1.1.1.1.1. #false() :- agent(X1), __def_28(X1).
                                  By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
8.1.3.1.1.1.1.1.1.3.1.1.1.1.1.1.1. #false() :- agent(i), __def_28(i).
                                    agent(i) is impossible.
8.1.3.1.1.1.1.1.1.3.1.1.1.1.1.1.2. #false() :- agent(alice), __def_28(alice).
                                    agent(alice) is impossible.
8.1.3.1.1.1.1.1.1.3.1.1.1.1.1.1.3. #false() :- agent(bob), __def_28(bob).
                                    agent(bob) is impossible.
8.1.3.1.1.1.1.1.1.3.1.1.1.1.1.1.4. #false() :- agent(server), __def_28(server).
                                    agent(server) is impossible.
8.1.3.1.1.1.1.1.1.3.1.1.1.2. __def_43 (X1,X2) :- __def_62(sym), __def_63(X2), __def_28(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.1.1.2.1. __def_43 (X1,X2) :- __def_28(X2), __def_62(sym), __def_63(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.3.1.1.1.2.1.1. #false() :- __def_28(X1), __def_63(X1).
                                  By induction on X1 satisfying __def_28, must start with cons.
8.1.3.1.1.1.1.1.1.3.1.1.1.2.1.1.1. #false() :- __def_28(cons(X1,X2)), __def_63(cons(X1,X2)).
                                    __def_28(cons(X1,X2)) is impossible.
8.1.3.1.1.1.1.1.1.3.1.2. __def_43 (X1,X2) :- __def_24(X2), __def_25(key(pub,session_old(X3,X4))), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                          This is implied by:
8.1.3.1.1.1.1.1.1.3.1.2.1. __def_43 (X1,X2) :- __def_24(X2), knows_old(X1), knows_old(key(sym,X2)).
                            Examine all ways of building knows_old(key(sym,X2)) in the body.
                            The 2 possibilities are:
                            knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                            knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
8.1.3.1.1.1.1.1.1.3.1.2.1.1. __def_43 (X1,X2) :- __def_51(sym), agent(X2), __def_24(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.2.1.1.1. __def_43 (X1,X2) :- __def_24(X2), __def_51(sym), agent(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.3.1.2.1.1.1.1. #false() :- __def_24(X1), agent(X1).
                                  By induction on X1 satisfying __def_24, must start with noncea_old.
8.1.3.1.1.1.1.1.1.3.1.2.1.1.1.1.1. #false() :- __def_24(noncea_old(X1,X2)), agent(noncea_old(X1,X2)).
                                    __def_24(noncea_old(X1,X2)) is impossible.
8.1.3.1.1.1.1.1.1.3.1.2.1.2. __def_43 (X1,X2) :- __def_62(sym), __def_63(X2), __def_24(X2), knows_old(X1).
                              Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.2.1.2.1. __def_43 (X1,X2) :- __def_24(X2), __def_62(sym), __def_63(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.3.1.2.1.2.1.1. #false() :- __def_24(X1), __def_63(X1).
                                  By induction on X1 satisfying __def_24, must start with noncea_old.
8.1.3.1.1.1.1.1.1.3.1.2.1.2.1.1.1. #false() :- __def_24(noncea_old(X1,X2)), __def_63(noncea_old(X1,X2)).
                                    __def_24(noncea_old(X1,X2)) is impossible.
8.1.3.1.1.1.1.1.1.3.1.3. __def_43 (X1,X2) :- __type_7(X2), __def_44(key(pub,session_old(X3,X4))), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                          Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.3.1. __def_43 (X1,X2) :- __def_44(key(pub,session_old(X3,X4))), __type_7(X2), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                            This is implied by:
8.1.3.1.1.1.1.1.1.3.1.3.1.1. __def_43 (X1,X2) :- __type_7(X2), knows_old(X1), knows_old(key(sym,X2)).
                              Examine all ways of building knows_old(key(sym,X2)) in the body.
                              The 2 possibilities are:
                              knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                              knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1. __def_43 (X1,X2) :- __def_51(sym), agent(X2), __type_7(X2), knows_old(X1).
                                Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1. __def_43 (X1,X2) :- __def_51(sym), __type_7(X2), agent(X2), knows_old(X1).
                                  Special case of:
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1.1. #false() :- agent(X1), __type_7(X1).
                                    By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1.1.1. #false() :- agent(i), __type_7(i).
                                      agent(i) is impossible.
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1.1.2. #false() :- agent(alice), __type_7(alice).
                                      agent(alice) is impossible.
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1.1.3. #false() :- agent(bob), __type_7(bob).
                                      agent(bob) is impossible.
8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1.1.4. #false() :- agent(server), __type_7(server).
                                      agent(server) is impossible.
8.1.3.1.1.1.1.1.1.3.1.3.1.1.2. __def_43 (X1,X2) :- __def_62(sym), __def_63(X2), __type_7(X2), knows_old(X1).
                                Special case of:
8.1.3.1.1.1.1.1.1.3.1.3.1.1.2.1. #false() :- __def_63(X1), __type_7(X1).
                                  By induction on X1 satisfying __def_63, must start with i.
8.1.3.1.1.1.1.1.1.3.1.3.1.1.2.1.1. #false() :- __def_63(i), __type_7(i).
                                    __def_63(i) is impossible.
8.1.3.1.1.1.1.1.1.3.1.4. __def_43 (X1,X2) :- knows_old(X2), knows_old(key(pub,session_old(X3,X4))), knows_old(X1), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                          Equivalent to:
8.1.3.1.1.1.1.1.1.3.1.4.1. __def_43 (X1,X2) :- knows_old(X2), knows_old(X1), knows_old(key(pub,session_old(X3,X4))), knows_old(key(sym,X2)), knows_old(noncea_old(X3,X4)), knows_old(passwd_old(X3,X4)).
                            This is implied by:
8.1.3.1.1.1.1.1.1.3.1.4.1.1. __def_43 (X1,X2) :- knows_old(X2), knows_old(X1), knows_old(key(sym,X2)).
                              Examine all ways of building knows_old(key(sym,X2)) in the body.
                              The 2 possibilities are:
                              knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                              knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
8.1.3.1.1.1.1.1.1.3.1.4.1.1.1. __def_43 (X1,X2) :- __def_51(sym), agent(X2), knows_old(X2), knows_old(X1).
                                This is implied by:
8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1. #false() :- __def_51(sym).
                                  __def_51(sym) is impossible.
8.1.3.1.1.1.1.1.1.3.1.4.1.1.2. __def_43 (X1,X2) :- __def_62(sym), __def_63(X2), knows_old(X2), knows_old(X1).
                                This is implied by:
8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1. #false() :- __def_62(sym).
                                  __def_62(sym) is impossible.
. lemma 9:
9. __def_34(r_old(X1,X2)) :- __def_27 (X1,X3,X2).
    Examine all ways of building __def_27 (X1,X3,X2) in the body.
    The 3 possibilities are:
    __def_27(X1,X2,X3) :- knows_old(X1), __def_36(X2).
    __def_27(X1,X2,X3) :- knows_old(X1), __type_7(X2).
    __def_27(X1,X2,X3) :- knows_old(X1), __def_24(X2).
9.1. __def_34(r_old(X1,X2)) :- knows_old(X1), __def_36(X3).
      Equivalent to:
9.1.1. __def_34(r_old(X1,X2)) :- __def_36(X3), knows_old(X1).
        Infer __def_34(r_old(X1,X2)) using __def_34(r_old(X1,X2)) :- knows_old(X1).
9.1.1.1. knows_old(X1) :- __def_36(X3), knows_old(X1).
          Because the following simpler clause holds:
9.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
9.2. __def_34(r_old(X1,X2)) :- knows_old(X1), __type_7(X3).
      Equivalent to:
9.2.1. __def_34(r_old(X1,X2)) :- __type_7(X3), knows_old(X1).
        Infer __def_34(r_old(X1,X2)) using __def_34(r_old(X1,X2)) :- knows_old(X1).
9.2.1.1. knows_old(X1) :- __type_7(X3), knows_old(X1).
          Because the following simpler clause holds:
9.2.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
9.3. __def_34(r_old(X1,X2)) :- knows_old(X1), __def_24(X3).
      Equivalent to:
9.3.1. __def_34(r_old(X1,X2)) :- __def_24(X3), knows_old(X1).
        Infer __def_34(r_old(X1,X2)) using __def_34(r_old(X1,X2)) :- knows_old(X1).
9.3.1.1. knows_old(X1) :- __def_24(X3), knows_old(X1).
          Because the following simpler clause holds:
9.3.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 10:
10. __def_25(key(X1,X2)) :- __type_4(X2), __def_26(X1).
     Equivalent to:
10.1. __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
       Infer __def_25(key(X1,X2)) using __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
10.1.1. __def_26(X1) :- __def_26(X1), __type_4(X2).
         Because the following simpler clause holds:
10.1.1.1. __def_26(X1) :- __def_26(X1). is a tautology.
10.1.2. __type_4(X2) :- __def_26(X1), __type_4(X2).
         Because the following simpler clause holds:
10.1.2.1. __type_4(X2) :- __type_4(X2). is a tautology.
. lemma 11:
11. __type_22(X1) :- __def_104 (X1,X2).
     __def_104 (X1,X2) must be by __def_104(X1,X2) :- __def_100(X1), __def_103(X2), __def_78(X2).
11.1. __type_22(X1) :- __def_100(X1), __def_103(X2), __def_78(X2).
       Because the following simpler clause holds:
11.1.1. __type_22(X1) :- __def_100(X1).
         By induction on X1 satisfying __def_100, must start with nonceb_current.
11.1.1.1. __type_22(nonceb_current(X1,X2)) :- __def_100(nonceb_current(X1,X2)).
           __def_100(nonceb_current(X1,X2)) must be by __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
11.1.1.1.1. __type_22(nonceb_current(X1,X2)) :- knows_current(X1).
             Infer __type_22(nonceb_current(X1,X2)) using __type_22(nonceb_current(X1,X2)) :- knows_current(X1).
11.1.1.1.1.1. knows_current(X1) :- knows_current(X1). is a tautology.
. lemma 12:
12. __type_11(X1) :- testable_old(X1).
     By induction on X1 satisfying testable_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
12.1. __type_11(dec(X1,X2)) :- testable_old(dec(X1,X2)).
       testable_old(dec(X1,X2)) must be by testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
12.1.1. __type_11(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
         Infer __type_11(dec(X1,X2)) using __type_11(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
12.1.1.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
12.1.1.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
12.2. __type_11(s(X1)) :- testable_old(s(X1)).
       testable_old(s(X1)) must be by testable_old(s(X)) :- testable_old(X).
12.2.1. __type_11(s(X1)) :- testable_old(X1).
         Infer __type_11(s(X1)) using __type_11(s(X)) :- testable_old(X).
12.2.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
12.3. __type_11(nil) :- testable_old(nil).
       testable_old(nil) must be by testable_old(nil).
12.3.1. __type_11(nil).
         Infer __type_11(nil) using __type_11(nil).
12.4. __type_11(i) :- testable_old(i).
       testable_old(i) must be by testable_old(i).
12.4.1. __type_11(i).
         Infer __type_11(i) using __type_11(i).
12.5. __type_11(p(X1)) :- testable_old(p(X1)).
       testable_old(p(X1)) must be by testable_old(p(X)) :- testable_old(X).
12.5.1. __type_11(p(X1)) :- testable_old(X1).
         Infer __type_11(p(X1)) using __type_11(p(X)) :- testable_old(X).
12.5.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
12.6. __type_11(key(X1,X2)) :- testable_old(key(X1,X2)).
       Examine all ways of building testable_old(key(X1,X2)) in the body.
       The 3 possibilities are:
       testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
       testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
       testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
12.6.1. __type_11(key(X1,X2)) :- __def_51(X1), agent(X2).
         Infer __type_11(key(X1,X2)) using __type_11(key(X1,X2)) :- __def_51(X1), agent(X2).
12.6.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
12.6.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
12.6.2. __type_11(key(X1,X2)) :- __def_61(X1), __type_16(X2).
         Infer __type_11(key(X1,X2)) using __type_11(key(X1,X2)) :- __def_61(X1), __type_16(X2).
12.6.2.1. __def_61(X1) :- __def_61(X1), __type_16(X2).: see 7.6.2.1.
12.6.2.2. __type_16(X2) :- __def_61(X1), __type_16(X2).: see 7.6.2.2.
12.6.3. __type_11(key(X1,X2)) :- __def_58(X1), __type_14(X2).
         Infer __type_11(key(X1,X2)) using __type_11(key(X1,X2)) :- __def_58(X1), __type_14(X2).
12.6.3.1. __def_58(X1) :- __def_58(X1), __type_14(X2).: see 7.6.3.1.
12.6.3.2. __type_14(X2) :- __def_58(X1), __type_14(X2).: see 7.6.3.2.
12.7. __type_11(cons(X1,X2)) :- testable_old(cons(X1,X2)).
       Examine all ways of building testable_old(cons(X1,X2)) in the body.
       The 2 possibilities are:
       testable_old(cons(X1,X2)) :- testable_old(X1).
       testable_old(cons(X1,X2)) :- testable_old(X2).
12.7.1. __type_11(cons(X1,X2)) :- testable_old(X1).
         Infer __type_11(cons(X1,X2)) using __type_11(cons(X1,X2)) :- testable_old(X1).
12.7.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
12.7.2. __type_11(cons(X1,X2)) :- testable_old(X2).
         Infer __type_11(cons(X1,X2)) using __type_11(cons(X1,X2)) :- testable_old(X2).
12.7.2.1. testable_old(X2) :- testable_old(X2).: see 7.7.2.1.
12.8. __type_11(crypt(X1,X2)) :- testable_old(crypt(X1,X2)).
       Examine all ways of building testable_old(crypt(X1,X2)) in the body.
       The 6 possibilities are:
       testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
       testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
       testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
       testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
       testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
       testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
12.8.1. __type_11(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
         Infer __type_11(crypt(X1,X2)) using __type_11(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
12.8.1.1. __type_12(X1) :- __type_12(X1), __def_54(X2).: see 7.8.1.1.
12.8.1.2. __def_54(X2) :- __type_12(X1), __def_54(X2).: see 7.8.1.2.
12.8.2. __type_11(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
         Infer __type_11(crypt(X1,X2)) using __type_11(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
12.8.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
12.8.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
12.8.3. __type_11(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
         Infer __type_11(crypt(X1,X2)) using __type_11(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
12.8.3.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
12.8.3.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
12.8.4. __type_11(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
         Infer __type_11(crypt(X1,X2)) using __type_11(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
12.8.4.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
12.8.4.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
12.8.5. __type_11(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
         Infer __type_11(crypt(X1,X2)) using __type_11(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
12.8.5.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
12.8.5.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
12.8.6. __type_11(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
         Infer __type_11(crypt(X1,X2)) using __type_11(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
12.8.6.1. __type_11(X1) :- __type_11(X1), __def_52(X2).: see 7.8.6.1.
12.8.6.2. __def_52(X2) :- __type_11(X1), __def_52(X2).: see 7.8.6.2.
12.9. __type_11(alice) :- testable_old(alice).
       testable_old(alice) must be by testable_old(alice).
12.9.1. __type_11(alice).
         Infer __type_11(alice) using __type_11(alice).
12.10. __type_11(enc(X1,X2)) :- testable_old(enc(X1,X2)).
        Examine all ways of building testable_old(enc(X1,X2)) in the body.
        The 4 possibilities are:
        testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
        testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
12.10.1. __type_11(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
          Infer __type_11(enc(X1,X2)) using __type_11(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
12.10.1.1. __def_15(X1) :- __def_15(X1), __def_16(X2).: see 7.10.1.1.
12.10.1.2. __def_16(X2) :- __def_15(X1), __def_16(X2).: see 7.10.1.2.
12.10.2. __type_11(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
          Infer __type_11(enc(X1,X2)) using __type_11(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
12.10.2.1. __def_19(X1) :- __def_19(X1), __def_20(X2).: see 7.10.2.1.
12.10.2.2. __def_20(X2) :- __def_19(X1), __def_20(X2).: see 7.10.2.2.
12.10.3. __type_11(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
          Infer __type_11(enc(X1,X2)) using __type_11(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
12.10.3.1. __def_10(X1) :- __def_10(X1), __def_11(X2).: see 7.10.3.1.
12.10.3.2. __def_11(X2) :- __def_10(X1), __def_11(X2).: see 7.10.3.2.
12.10.4. __type_11(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
          Infer __type_11(enc(X1,X2)) using __type_11(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
12.10.4.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
12.10.4.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
12.11. __type_11(bob) :- testable_old(bob).
        testable_old(bob) must be by testable_old(bob).
12.11.1. __type_11(bob).
          Infer __type_11(bob) using __type_11(bob).
12.12. __type_11(server) :- testable_old(server).
        testable_old(server) must be by testable_old(server).
12.12.1. __type_11(server).
          Infer __type_11(server) using __type_11(server).
. lemma 13:
13. __def_110 (X1,X2) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(X4,nil))).
     Equivalent to:
13.1. __def_110 (X1,X2) :- knows_current(cons(X1,cons(X3,nil))), knows_current(crypt(X4,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).
       knows_current(cons(X1,cons(X3,nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
13.1.1. __def_110 (X1,X2) :- knows_current(X1), knows_current(cons(X3,nil)), knows_current(crypt(X4,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).
         Infer __def_110 (X1,X2) using __def_110(X1,X2) :- knows_current(X1).
13.1.1.1. knows_current(X1) :- knows_current(X1), knows_current(cons(X3,nil)), knows_current(crypt(X4,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).
           Because the following simpler clause holds:
13.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 14:
14. __type_7(X1) :- __def_43 (X1,X2).
     __def_43 (X1,X2) must be by __def_43(X1,X2) :- __def_39(X1), __def_42(X2), __def_17(X2).
14.1. __type_7(X1) :- __def_39(X1), __def_42(X2), __def_17(X2).
       Equivalent to:
14.1.1. __type_7(X1) :- __def_17(X2), __def_39(X1), __def_42(X2).
         Because the following simpler clause holds:
14.1.1.1. __type_7(X1) :- __def_39(X1).
           By induction on X1 satisfying __def_39, must start with nonceb_old.
14.1.1.1.1. __type_7(nonceb_old(X1,X2)) :- __def_39(nonceb_old(X1,X2)).
             __def_39(nonceb_old(X1,X2)) must be by __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
14.1.1.1.1.1. __type_7(nonceb_old(X1,X2)) :- knows_old(X1).
               Infer __type_7(nonceb_old(X1,X2)) using __type_7(nonceb_old(X1,X2)) :- knows_old(X1).
14.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 15:
15. __type_17(X1) :- __def_75 (X2,X3,X1).
     Examine all ways of building __def_75 (X2,X3,X1) in the body.
     The 3 possibilities are:
     __def_75(X1,X2,X3) :- knows_current(X1), __def_76(X3).
     __def_75(X1,X2,X3) :- knows_current(X1), __def_80(X3).
     __def_75(X1,X2,X3) :- agent(X1), knows_current(X1), agent(X2), __def_72(X3).
15.1. __type_17(X1) :- knows_current(X2), __def_76(X1).
       Equivalent to:
15.1.1. __type_17(X1) :- __def_76(X1), knows_current(X2).
         Because the following simpler clause holds:
15.1.1.1. __type_17(X1) :- __def_76(X1).
           By induction on X1 satisfying __def_76, must start with crypt.
15.1.1.1.1. __type_17(crypt(X1,X2)) :- __def_76(crypt(X1,X2)).
             __def_76(crypt(X1,X2)) must be by __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
15.1.1.1.1.1. __type_17(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
               Infer __type_17(crypt(X1,X2)) using __type_17(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
15.1.1.1.1.1.1. __def_78(X1) :- __def_78(X1), __type_17(X2).
                 Because the following simpler clause holds:
15.1.1.1.1.1.1.1. __def_78(X1) :- __def_78(X1). is a tautology.
15.1.1.1.1.1.2. __type_17(X2) :- __def_78(X1), __type_17(X2).
                 Because the following simpler clause holds:
15.1.1.1.1.1.2.1. __type_17(X2) :- __type_17(X2). is a tautology.
15.2. __type_17(X1) :- knows_current(X2), __def_80(X1).
       Equivalent to:
15.2.1. __type_17(X1) :- __def_80(X1), knows_current(X2).
         Because the following simpler clause holds:
15.2.1.1. __type_17(X1) :- __def_80(X1).
           By induction on X1 satisfying __def_80, must start with crypt.
15.2.1.1.1. __type_17(crypt(X1,X2)) :- __def_80(crypt(X1,X2)).
             __def_80(crypt(X1,X2)) must be by __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
15.2.1.1.1.1. __type_17(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
               Infer __type_17(crypt(X1,X2)) using __type_17(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
15.2.1.1.1.1.1. __def_82(X1) :- __def_82(X1), __def_83(X2).
                 Because the following simpler clause holds:
15.2.1.1.1.1.1.1. __def_82(X1) :- __def_82(X1). is a tautology.
15.2.1.1.1.1.2. __def_83(X2) :- __def_82(X1), __def_83(X2).
                 Because the following simpler clause holds:
15.2.1.1.1.1.2.1. __def_83(X2) :- __def_83(X2). is a tautology.
15.3. __type_17(X1) :- agent(X2), knows_current(X2), agent(X3), __def_72(X1).
       Equivalent to:
15.3.1. __type_17(X1) :- __def_72(X1), agent(X2), agent(X3), knows_current(X3).
         Because the following simpler clause holds:
15.3.1.1. __type_17(X1) :- __def_72(X1).
           By induction on X1 satisfying __def_72, must start with key.
15.3.1.1.1. __type_17(key(X1,X2)) :- __def_72(key(X1,X2)).
             __def_72(key(X1,X2)) must be by __def_72(key(X1,X2)) :- __def_12(X1), __def_74(X2).
15.3.1.1.1.1. __type_17(key(X1,X2)) :- __def_12(X1), __def_74(X2).
               Infer __type_17(key(X1,X2)) using __type_17(key(X1,X2)) :- __def_12(X1), __def_74(X2).
15.3.1.1.1.1.1. __def_12(X1) :- __def_12(X1), __def_74(X2).
                 Because the following simpler clause holds:
15.3.1.1.1.1.1.1. __def_12(X1) :- __def_12(X1). is a tautology.
15.3.1.1.1.1.2. __def_74(X2) :- __def_12(X1), __def_74(X2).
                 Because the following simpler clause holds:
15.3.1.1.1.1.2.1. __def_74(X2) :- __def_74(X2). is a tautology.
. lemma 16:
16. __def_103(r_current(X1,X2)) :- __def_96 (X1,X3,X2).
     Examine all ways of building __def_96 (X1,X3,X2) in the body.
     The 3 possibilities are:
     __def_96(X1,X2,X3) :- knows_current(X1), __def_85(X2).
     __def_96(X1,X2,X3) :- knows_current(X1), __def_97(X2).
     __def_96(X1,X2,X3) :- knows_current(X1), __type_22(X2).
16.1. __def_103(r_current(X1,X2)) :- knows_current(X1), __def_85(X3).
       Equivalent to:
16.1.1. __def_103(r_current(X1,X2)) :- __def_85(X3), knows_current(X1).
         Infer __def_103(r_current(X1,X2)) using __def_103(r_current(X1,X2)) :- knows_current(X1).
16.1.1.1. knows_current(X1) :- __def_85(X3), knows_current(X1).
           Because the following simpler clause holds:
16.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
16.2. __def_103(r_current(X1,X2)) :- knows_current(X1), __def_97(X3).
       Equivalent to:
16.2.1. __def_103(r_current(X1,X2)) :- __def_97(X3), knows_current(X1).
         Infer __def_103(r_current(X1,X2)) using __def_103(r_current(X1,X2)) :- knows_current(X1).
16.2.1.1. knows_current(X1) :- __def_97(X3), knows_current(X1).
           Because the following simpler clause holds:
16.2.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
16.3. __def_103(r_current(X1,X2)) :- knows_current(X1), __type_22(X3).
       Equivalent to:
16.3.1. __def_103(r_current(X1,X2)) :- __type_22(X3), knows_current(X1).
         Infer __def_103(r_current(X1,X2)) using __def_103(r_current(X1,X2)) :- knows_current(X1).
16.3.1.1. knows_current(X1) :- __type_22(X3), knows_current(X1).
           Because the following simpler clause holds:
16.3.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 17:
17. __def_71(enc(X1,X2)) :- __def_73(X2), __def_72(X1).
     Equivalent to:
17.1. __def_71(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
       Infer __def_71(enc(X1,X2)) using __def_71(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
17.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).
         Because the following simpler clause holds:
17.1.1.1. __def_72(X1) :- __def_72(X1). is a tautology.
17.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).
         Because the following simpler clause holds:
17.1.2.1. __def_73(X2) :- __def_73(X2). is a tautology.
. lemma 18:
18. __def_85(noncea_current(X1,X2)) :- __def_84 (X1,X2,X3).
     __def_84 (X1,X2,X3) must be by __def_84(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_78(X3).
18.1. __def_85(noncea_current(X1,X2)) :- agent(X1), __type_1(X1), agent(X2), __def_78(X3).
       Equivalent to:
18.1.1. __def_85(noncea_current(X1,X2)) :- __def_78(X3), __type_1(X1), agent(X2), agent(X1).
         Infer __def_85(noncea_current(X1,X2)) using __def_85(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
18.1.1.1. agent(X1) :- __def_78(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
18.1.1.1.1. agent(X1) :- __type_1(X1).
             By induction on X1 satisfying __type_1, X1 must start with i, alice, bob or server.
18.1.1.1.1.1. agent(i) :- __type_1(i).
               __type_1(i) must be by __type_1(i).
18.1.1.1.1.1.1. agent(i).
                 Infer agent(i) using agent(i).
18.1.1.1.1.2. agent(alice) :- __type_1(alice).
               __type_1(alice) must be by __type_1(alice).
18.1.1.1.1.2.1. agent(alice).
                 Infer agent(alice) using agent(alice).
18.1.1.1.1.3. agent(bob) :- __type_1(bob).
               __type_1(bob) must be by __type_1(bob).
18.1.1.1.1.3.1. agent(bob).
                 Infer agent(bob) using agent(bob).
18.1.1.1.1.4. agent(server) :- __type_1(server).
               __type_1(server) must be by __type_1(server).
18.1.1.1.1.4.1. agent(server).
                 Infer agent(server) using agent(server).
18.1.1.2. knows_current(X1) :- __def_78(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
18.1.1.2.1. knows_current(X1) :- __type_1(X1).
             By induction on X1 satisfying __type_1, X1 must start with i, alice, bob or server.
18.1.1.2.1.1. knows_current(i) :- __type_1(i).
               __type_1(i) must be by __type_1(i).
18.1.1.2.1.1.1. knows_current(i).
                 Infer knows_current(i) using knows_current(i).
18.1.1.2.1.2. knows_current(alice) :- __type_1(alice).
               __type_1(alice) must be by __type_1(alice).
18.1.1.2.1.2.1. knows_current(alice).
                 Infer knows_current(alice) using knows_current(alice).
18.1.1.2.1.3. knows_current(bob) :- __type_1(bob).
               __type_1(bob) must be by __type_1(bob).
18.1.1.2.1.3.1. knows_current(bob).
                 Infer knows_current(bob) using knows_current(bob).
18.1.1.2.1.4. knows_current(server) :- __type_1(server).
               __type_1(server) must be by __type_1(server).
18.1.1.2.1.4.1. knows_current(server).
                 Infer knows_current(server) using knows_current(server).
18.1.1.3. agent(X2) :- __def_78(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
18.1.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
. lemma 19:
19. __def_111(r_current(X1,X2)) :- __def_110 (X1,X2).
     __def_110 (X1,X2) must be by __def_110(X1,X2) :- knows_current(X1).
19.1. __def_111(r_current(X1,X2)) :- knows_current(X1).
       Infer __def_111(r_current(X1,X2)) using __def_111(r_current(X1,X2)) :- knows_current(X1).
19.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 20:
20. __def_79 (X1,X2) :- knows_current(cons(X1,cons(X2,nil))).
     knows_current(cons(X1,cons(X2,nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
20.1. __def_79 (X1,X2) :- knows_current(X1), knows_current(cons(X2,nil)).
       knows_current(cons(X2,nil)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
20.1.1. __def_79 (X1,X2) :- knows_current(X2), knows_current(nil), knows_current(X1).
         Equivalent to:
20.1.1.1. __def_79 (X1,X2) :- knows_current(X2), knows_current(X1), knows_current(nil).
           Infer __def_79 (X1,X2) using __def_79(X1,X2) :- knows_current(X1), knows_current(X2).
20.1.1.1.1. knows_current(X1) :- knows_current(X2), knows_current(X1), knows_current(nil).
             Because the following simpler clause holds:
20.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
20.1.1.1.2. knows_current(X2) :- knows_current(X2), knows_current(X1), knows_current(nil).
             Because the following simpler clause holds:
20.1.1.1.2.1. knows_current(X2) :- knows_current(X2). is a tautology.
. lemma 21:
21. __def_42(r_old(X1,X2)) :- __def_35 (X1,X3,X2).
     Examine all ways of building __def_35 (X1,X3,X2) in the body.
     The 3 possibilities are:
     __def_35(X1,X2,X3) :- knows_old(X1), __def_36(X2).
     __def_35(X1,X2,X3) :- knows_old(X1), __type_7(X2).
     __def_35(X1,X2,X3) :- knows_old(X1), __def_24(X2).
21.1. __def_42(r_old(X1,X2)) :- knows_old(X1), __def_36(X3).
       Equivalent to:
21.1.1. __def_42(r_old(X1,X2)) :- __def_36(X3), knows_old(X1).
         Infer __def_42(r_old(X1,X2)) using __def_42(r_old(X1,X2)) :- knows_old(X1).
21.1.1.1. knows_old(X1) :- __def_36(X3), knows_old(X1).: see 9.1.1.1.
21.2. __def_42(r_old(X1,X2)) :- knows_old(X1), __type_7(X3).
       Equivalent to:
21.2.1. __def_42(r_old(X1,X2)) :- __type_7(X3), knows_old(X1).
         Infer __def_42(r_old(X1,X2)) using __def_42(r_old(X1,X2)) :- knows_old(X1).
21.2.1.1. knows_old(X1) :- __type_7(X3), knows_old(X1).: see 9.2.1.1.
21.3. __def_42(r_old(X1,X2)) :- knows_old(X1), __def_24(X3).
       Equivalent to:
21.3.1. __def_42(r_old(X1,X2)) :- __def_24(X3), knows_old(X1).
         Infer __def_42(r_old(X1,X2)) using __def_42(r_old(X1,X2)) :- knows_old(X1).
21.3.1.1. knows_old(X1) :- __def_24(X3), knows_old(X1).: see 9.3.1.1.
. lemma 22:
22. __def_109(r_current(X1,X2)) :- __def_108 (X1,X2).
     __def_108 (X1,X2) must be by __def_108(X1,X2) :- knows_current(X1).
22.1. __def_109(r_current(X1,X2)) :- knows_current(X1).
       Infer __def_109(r_current(X1,X2)) using __def_109(r_current(X1,X2)) :- knows_current(X1).
22.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 23:
23. __type_12(X1) :- testable_old(X1).
     By induction on X1 satisfying testable_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
23.1. __type_12(dec(X1,X2)) :- testable_old(dec(X1,X2)).
       testable_old(dec(X1,X2)) must be by testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
23.1.1. __type_12(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
         Infer __type_12(dec(X1,X2)) using __type_12(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
23.1.1.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
23.1.1.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
23.2. __type_12(s(X1)) :- testable_old(s(X1)).
       testable_old(s(X1)) must be by testable_old(s(X)) :- testable_old(X).
23.2.1. __type_12(s(X1)) :- testable_old(X1).
         Infer __type_12(s(X1)) using __type_12(s(X)) :- testable_old(X).
23.2.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
23.3. __type_12(nil) :- testable_old(nil).
       testable_old(nil) must be by testable_old(nil).
23.3.1. __type_12(nil).
         Infer __type_12(nil) using __type_12(nil).
23.4. __type_12(i) :- testable_old(i).
       testable_old(i) must be by testable_old(i).
23.4.1. __type_12(i).
         Infer __type_12(i) using __type_12(i).
23.5. __type_12(p(X1)) :- testable_old(p(X1)).
       testable_old(p(X1)) must be by testable_old(p(X)) :- testable_old(X).
23.5.1. __type_12(p(X1)) :- testable_old(X1).
         Infer __type_12(p(X1)) using __type_12(p(X)) :- testable_old(X).
23.5.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
23.6. __type_12(key(X1,X2)) :- testable_old(key(X1,X2)).
       Examine all ways of building testable_old(key(X1,X2)) in the body.
       The 3 possibilities are:
       testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
       testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
       testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
23.6.1. __type_12(key(X1,X2)) :- __def_51(X1), agent(X2).
         Infer __type_12(key(X1,X2)) using __type_12(key(X1,X2)) :- __def_51(X1), agent(X2).
23.6.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
23.6.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
23.6.2. __type_12(key(X1,X2)) :- __def_61(X1), __type_16(X2).
         Infer __type_12(key(X1,X2)) using __type_12(key(X1,X2)) :- __def_61(X1), __type_16(X2).
23.6.2.1. __def_61(X1) :- __def_61(X1), __type_16(X2).: see 7.6.2.1.
23.6.2.2. __type_16(X2) :- __def_61(X1), __type_16(X2).: see 7.6.2.2.
23.6.3. __type_12(key(X1,X2)) :- __def_58(X1), __type_14(X2).
         Infer __type_12(key(X1,X2)) using __type_12(key(X1,X2)) :- __def_58(X1), __type_14(X2).
23.6.3.1. __def_58(X1) :- __def_58(X1), __type_14(X2).: see 7.6.3.1.
23.6.3.2. __type_14(X2) :- __def_58(X1), __type_14(X2).: see 7.6.3.2.
23.7. __type_12(cons(X1,X2)) :- testable_old(cons(X1,X2)).
       Examine all ways of building testable_old(cons(X1,X2)) in the body.
       The 2 possibilities are:
       testable_old(cons(X1,X2)) :- testable_old(X1).
       testable_old(cons(X1,X2)) :- testable_old(X2).
23.7.1. __type_12(cons(X1,X2)) :- testable_old(X1).
         Infer __type_12(cons(X1,X2)) using __type_12(cons(X1,X2)) :- testable_old(X1).
23.7.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
23.7.2. __type_12(cons(X1,X2)) :- testable_old(X2).
         Infer __type_12(cons(X1,X2)) using __type_12(cons(X1,X2)) :- testable_old(X2).
23.7.2.1. testable_old(X2) :- testable_old(X2).: see 7.7.2.1.
23.8. __type_12(crypt(X1,X2)) :- testable_old(crypt(X1,X2)).
       Examine all ways of building testable_old(crypt(X1,X2)) in the body.
       The 6 possibilities are:
       testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
       testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
       testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
       testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
       testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
       testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
23.8.1. __type_12(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
         Infer __type_12(crypt(X1,X2)) using __type_12(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
23.8.1.1. __type_12(X1) :- __type_12(X1), __def_54(X2).: see 7.8.1.1.
23.8.1.2. __def_54(X2) :- __type_12(X1), __def_54(X2).: see 7.8.1.2.
23.8.2. __type_12(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
         Infer __type_12(crypt(X1,X2)) using __type_12(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
23.8.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
23.8.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
23.8.3. __type_12(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
         Infer __type_12(crypt(X1,X2)) using __type_12(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
23.8.3.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
23.8.3.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
23.8.4. __type_12(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
         Infer __type_12(crypt(X1,X2)) using __type_12(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
23.8.4.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
23.8.4.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
23.8.5. __type_12(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
         Infer __type_12(crypt(X1,X2)) using __type_12(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
23.8.5.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
23.8.5.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
23.8.6. __type_12(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
         Infer __type_12(crypt(X1,X2)) using __type_12(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
23.8.6.1. __type_11(X1) :- __type_11(X1), __def_52(X2).: see 7.8.6.1.
23.8.6.2. __def_52(X2) :- __type_11(X1), __def_52(X2).: see 7.8.6.2.
23.9. __type_12(alice) :- testable_old(alice).
       testable_old(alice) must be by testable_old(alice).
23.9.1. __type_12(alice).
         Infer __type_12(alice) using __type_12(alice).
23.10. __type_12(enc(X1,X2)) :- testable_old(enc(X1,X2)).
        Examine all ways of building testable_old(enc(X1,X2)) in the body.
        The 4 possibilities are:
        testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
        testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
23.10.1. __type_12(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
          Infer __type_12(enc(X1,X2)) using __type_12(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
23.10.1.1. __def_15(X1) :- __def_15(X1), __def_16(X2).: see 7.10.1.1.
23.10.1.2. __def_16(X2) :- __def_15(X1), __def_16(X2).: see 7.10.1.2.
23.10.2. __type_12(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
          Infer __type_12(enc(X1,X2)) using __type_12(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
23.10.2.1. __def_19(X1) :- __def_19(X1), __def_20(X2).: see 7.10.2.1.
23.10.2.2. __def_20(X2) :- __def_19(X1), __def_20(X2).: see 7.10.2.2.
23.10.3. __type_12(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
          Infer __type_12(enc(X1,X2)) using __type_12(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
23.10.3.1. __def_10(X1) :- __def_10(X1), __def_11(X2).: see 7.10.3.1.
23.10.3.2. __def_11(X2) :- __def_10(X1), __def_11(X2).: see 7.10.3.2.
23.10.4. __type_12(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
          Infer __type_12(enc(X1,X2)) using __type_12(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
23.10.4.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
23.10.4.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
23.11. __type_12(bob) :- testable_old(bob).
        testable_old(bob) must be by testable_old(bob).
23.11.1. __type_12(bob).
          Infer __type_12(bob) using __type_12(bob).
23.12. __type_12(server) :- testable_old(server).
        testable_old(server) must be by testable_old(server).
23.12.1. __type_12(server).
          Infer __type_12(server) using __type_12(server).
. lemma 24:
24. __def_1 (X1,X2) :- knows_old(crypt(X2,key(pub,X1))).
     Examine all ways of building knows_old(crypt(X2,key(pub,X1))) in the body.
     The 4 possibilities are:
     knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
     knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
     knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
     knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
24.1. __def_1 (X1,X2) :- __def_28(X2), __def_29(key(pub,X1)).
       __def_29(key(pub,X1)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
24.1.1. __def_1 (X1,X2) :- __def_33(pub), __def_34(X1), __def_28(X2).
         Equivalent to:
24.1.1.1. __def_1 (X1,X2) :- __def_28(X2), __def_33(pub), __def_34(X1).
           This is implied by:
24.1.1.1.1. #false() :- __def_33(pub).
             __def_33(pub) is impossible.
24.2. __def_1 (X1,X2) :- __def_24(X2), __def_25(key(pub,X1)).
       __def_25(key(pub,X1)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
24.2.1. __def_1 (X1,X2) :- __def_26(pub), __type_4(X1), __def_24(X2).
         Equivalent to:
24.2.1.1. __def_1 (X1,X2) :- __def_24(X2), __def_26(pub), __type_4(X1).
           This is implied by:
24.2.1.1.1. #false() :- __def_26(pub).
             __def_26(pub) is impossible.
24.3. __def_1 (X1,X2) :- __type_7(X2), __def_44(key(pub,X1)).
       Equivalent to:
24.3.1. __def_1 (X1,X2) :- __def_44(key(pub,X1)), __type_7(X2).
         __def_44(key(pub,X1)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
24.3.1.1. __def_1 (X1,X2) :- __def_45(pub), __type_8(X1), __type_7(X2).
           Equivalent to:
24.3.1.1.1. __def_1 (X1,X2) :- __def_45(pub), __type_7(X2), __type_8(X1).
             This is implied by:
24.3.1.1.1.1. #false() :- __def_45(pub).
               __def_45(pub) is impossible.
24.4. __def_1 (X1,X2) :- knows_old(X2), knows_old(key(pub,X1)).
       Examine all ways of building knows_old(key(pub,X1)) in the body.
       The 2 possibilities are:
       knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
       knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
24.4.1. __def_1 (X1,X2) :- __def_51(pub), agent(X1), knows_old(X2).
         Infer __def_1 (X1,X2) using __def_1(X1,X2) :- agent(X1), knows_old(X2).
24.4.1.1. agent(X1) :- __def_51(pub), agent(X1), knows_old(X2).
           Because the following simpler clause holds:
24.4.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
24.4.1.2. knows_old(X2) :- __def_51(pub), agent(X1), knows_old(X2).
           Because the following simpler clause holds:
24.4.1.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
24.4.2. __def_1 (X1,X2) :- __def_62(pub), __def_63(X1), knows_old(X2).
         Infer __def_1 (X1,X2) using __def_1(X1,X2) :- agent(X1), knows_old(X2).
24.4.2.1. agent(X1) :- __def_62(pub), __def_63(X1), knows_old(X2).
           Because the following simpler clause holds:
24.4.2.1.1. agent(X1) :- __def_63(X1).
             By induction on X1 satisfying __def_63, must start with i.
24.4.2.1.1.1. agent(i) :- __def_63(i).
               __def_63(i) must be by __def_63(i).
24.4.2.1.1.1.1. agent(i).: see 18.1.1.1.1.1.1.
24.4.2.2. knows_old(X2) :- __def_62(pub), __def_63(X1), knows_old(X2).
           Because the following simpler clause holds:
24.4.2.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
. lemma 25:
25. __def_90(key(X1,X2)) :- __def_95(X2), __def_94(X1).
     Equivalent to:
25.1. __def_90(key(X1,X2)) :- __def_94(X1), __def_95(X2).
       Infer __def_90(key(X1,X2)) using __def_90(key(X1,X2)) :- __def_94(X1), __def_95(X2).
25.1.1. __def_94(X1) :- __def_94(X1), __def_95(X2).
         Because the following simpler clause holds:
25.1.1.1. __def_94(X1) :- __def_94(X1). is a tautology.
25.1.2. __def_95(X2) :- __def_94(X1), __def_95(X2).
         Because the following simpler clause holds:
25.1.2.1. __def_95(X2) :- __def_95(X2). is a tautology.
. lemma 26:
26. __def_47 (X1,X2) :- knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X2)),nil))).
     Equivalent to:
26.1. __def_47 (X1,X2) :- knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X2)),nil))), knows_old(crypt(X4,key(sym,r_old(X1,X2)))), knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))).
       Infer __def_47 (X1,X2) using __def_47(X1,X2).
. lemma 27:
27. __def_22(dec(X1,X2)) :- __def_20(X2), __type_3(X1).
     Infer __def_22(dec(X1,X2)) using __def_22(dec(X1,X2)) :- __type_3(X1), __def_20(X2).
27.1. __type_3(X1) :- __def_20(X2), __type_3(X1).
       Because the following simpler clause holds:
27.1.1. __type_3(X1) :- __type_3(X1). is a tautology.
27.2. __def_20(X2) :- __def_20(X2), __type_3(X1).
       Because the following simpler clause holds:
27.2.1. __def_20(X2) :- __def_20(X2).: see 7.10.2.2.1.
. lemma 28:
28. __type_6(X1) :- __def_35 (X2,X1,X3).
     Examine all ways of building __def_35 (X2,X1,X3) in the body.
     The 3 possibilities are:
     __def_35(X1,X2,X3) :- knows_old(X1), __def_36(X2).
     __def_35(X1,X2,X3) :- knows_old(X1), __type_7(X2).
     __def_35(X1,X2,X3) :- knows_old(X1), __def_24(X2).
28.1. __type_6(X1) :- knows_old(X2), __def_36(X1).
       Equivalent to:
28.1.1. __type_6(X1) :- __def_36(X1), knows_old(X2).
         Because the following simpler clause holds:
28.1.1.1. __type_6(X1) :- __def_36(X1).
           By induction on X1 satisfying __def_36, must start with cons.
28.1.1.1.1. __type_6(cons(X1,X2)) :- __def_36(cons(X1,X2)).
             __def_36(cons(X1,X2)) must be by __def_36(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
28.1.1.1.1.1. __type_6(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
               Infer __type_6(cons(X1,X2)) using __type_6(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
28.1.1.1.1.1.1. __type_5(X1) :- __type_6(X1), __def_38(X2).
                 Because the following simpler clause holds:
28.1.1.1.1.1.1.1. __type_5(X1) :- __type_6(X1).
                   Without any induction hypothesis:
28.1.1.1.1.1.1.1.1. __type_5(X1) :- __type_6(X1).
                     By induction on X1 satisfying __type_6, X1 must start with nonceb_old, cons or noncea_old.
28.1.1.1.1.1.1.1.1.1. __type_5(nonceb_old(X1,X2)) :- __type_6(nonceb_old(X1,X2)).
                       __type_6(nonceb_old(X1,X2)) must be by __type_6(nonceb_old(X1,X2)) :- knows_old(X1).
28.1.1.1.1.1.1.1.1.1.1. __type_5(nonceb_old(X1,X2)) :- knows_old(X1).
                         Infer __type_5(nonceb_old(X1,X2)) using __type_5(nonceb_old(X1,X2)) :- knows_old(X1).
28.1.1.1.1.1.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
28.1.1.1.1.1.1.1.1.2. __type_5(cons(X1,X2)) :- __type_6(cons(X1,X2)).
                       __type_6(cons(X1,X2)) must be by __type_6(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
28.1.1.1.1.1.1.1.1.2.1. __type_5(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
                         Infer __type_5(cons(X1,X2)) using __type_5(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
28.1.1.1.1.1.1.1.1.2.1.1. __type_5(X1) :- __type_5(X1), __def_30(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1.
28.1.1.1.1.1.1.1.1.2.1.2. __def_30(X2) :- __type_5(X1), __def_30(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.
28.1.1.1.1.1.1.1.1.3. __type_5(noncea_old(X1,X2)) :- __type_6(noncea_old(X1,X2)).
                       __type_6(noncea_old(X1,X2)) must be by __type_6(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
28.1.1.1.1.1.1.1.1.3.1. __type_5(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
                         Infer __type_5(noncea_old(X1,X2)) using __type_5(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
28.1.1.1.1.1.1.1.1.3.1.1. agent(X1) :- agent(X1), __type_1(X1), agent(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.1.
28.1.1.1.1.1.1.1.1.3.1.2. __type_1(X1) :- agent(X1), __type_1(X1), agent(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.2.
28.1.1.1.1.1.1.1.1.3.1.3. agent(X2) :- agent(X1), __type_1(X1), agent(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.3.
28.1.1.1.1.1.2. __def_30(X2) :- __type_6(X1), __def_38(X2).
                 Because the following simpler clause holds:
28.1.1.1.1.1.2.1. __def_30(X2) :- __def_38(X2).
                   Without any induction hypothesis:
28.1.1.1.1.1.2.1.1. __def_30(X1) :- __def_38(X1).
                     By induction on X2 satisfying __def_38, must start with cons.
28.1.1.1.1.1.2.1.1.1. __def_30(cons(X1,X2)) :- __def_38(cons(X1,X2)).
                       __def_38(cons(X1,X2)) must be by __def_38(cons(X1,X2)) :- __def_39(X1), __def_40(X2).
28.1.1.1.1.1.2.1.1.1.1. __def_30(cons(X1,X2)) :- __def_39(X1), __def_40(X2).
                         Infer __def_30(cons(X1,X2)) using __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
28.1.1.1.1.1.2.1.1.1.1.1. __def_31(X1) :- __def_39(X1), __def_40(X2).
                           Because the following simpler clause holds:
28.1.1.1.1.1.2.1.1.1.1.1.1. __def_31(X1) :- __def_39(X1).
                             Without any induction hypothesis:
28.1.1.1.1.1.2.1.1.1.1.1.1.1. __def_31(X1) :- __def_39(X1).
                               By induction on X1 satisfying __def_39, must start with nonceb_old.
28.1.1.1.1.1.2.1.1.1.1.1.1.1.1. __def_31(nonceb_old(X1,X2)) :- __def_39(nonceb_old(X1,X2)).
                                 __def_39(nonceb_old(X1,X2)) must be by __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
28.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1. __def_31(nonceb_old(X1,X2)) :- knows_old(X1).
                                   Infer __def_31(nonceb_old(X1,X2)) using __def_31(nonceb_old(X1,X2)) :- knows_old(X1).
28.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
28.1.1.1.1.1.2.1.1.1.1.2. __def_32(X2) :- __def_39(X1), __def_40(X2).
                           Because the following simpler clause holds:
28.1.1.1.1.1.2.1.1.1.1.2.1. __def_32(X2) :- __def_40(X2).
                             Without any induction hypothesis:
28.1.1.1.1.1.2.1.1.1.1.2.1.1. __def_32(X1) :- __def_40(X1).
                               By induction on X2 satisfying __def_40, must start with nil.
28.1.1.1.1.1.2.1.1.1.1.2.1.1.1. __def_32(nil) :- __def_40(nil).
                                 __def_40(nil) must be by __def_40(nil).
28.1.1.1.1.1.2.1.1.1.1.2.1.1.1.1. __def_32(nil).
                                   Infer __def_32(nil) using __def_32(nil).
28.2. __type_6(X1) :- knows_old(X2), __type_7(X1).
       Equivalent to:
28.2.1. __type_6(X1) :- __type_7(X1), knows_old(X2).
         Because the following simpler clause holds:
28.2.1.1. __type_6(X1) :- __type_7(X1).
           By induction on X1 satisfying __type_7, must start with nonceb_old.
28.2.1.1.1. __type_6(nonceb_old(X1,X2)) :- __type_7(nonceb_old(X1,X2)).
             __type_7(nonceb_old(X1,X2)) must be by __type_7(nonceb_old(X1,X2)) :- knows_old(X1).
28.2.1.1.1.1. __type_6(nonceb_old(X1,X2)) :- knows_old(X1).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.
28.3. __type_6(X1) :- knows_old(X2), __def_24(X1).
       Equivalent to:
28.3.1. __type_6(X1) :- __def_24(X1), knows_old(X2).
         Because the following simpler clause holds:
28.3.1.1. __type_6(X1) :- __def_24(X1).
           By induction on X1 satisfying __def_24, must start with noncea_old.
28.3.1.1.1. __type_6(noncea_old(X1,X2)) :- __def_24(noncea_old(X1,X2)).
             __def_24(noncea_old(X1,X2)) must be by __def_24(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
28.3.1.1.1.1. __type_6(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.
. lemma 29:
29. __def_3 (X1,X2) :- knows_old(crypt(X2,key(prv,X1))).
     Examine all ways of building knows_old(crypt(X2,key(prv,X1))) in the body.
     The 4 possibilities are:
     knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
     knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
     knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
     knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
29.1. __def_3 (X1,X2) :- __def_28(X2), __def_29(key(prv,X1)).
       __def_29(key(prv,X1)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
29.1.1. __def_3 (X1,X2) :- __def_33(prv), __def_34(X1), __def_28(X2).
         Equivalent to:
29.1.1.1. __def_3 (X1,X2) :- __def_28(X2), __def_33(prv), __def_34(X1).
           This is implied by:
29.1.1.1.1. #false() :- __def_33(prv).
             __def_33(prv) is impossible.
29.2. __def_3 (X1,X2) :- __def_24(X2), __def_25(key(prv,X1)).
       __def_25(key(prv,X1)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
29.2.1. __def_3 (X1,X2) :- __def_26(prv), __type_4(X1), __def_24(X2).
         Equivalent to:
29.2.1.1. __def_3 (X1,X2) :- __def_24(X2), __def_26(prv), __type_4(X1).
           This is implied by:
29.2.1.1.1. #false() :- __def_26(prv).
             __def_26(prv) is impossible.
29.3. __def_3 (X1,X2) :- __type_7(X2), __def_44(key(prv,X1)).
       Equivalent to:
29.3.1. __def_3 (X1,X2) :- __def_44(key(prv,X1)), __type_7(X2).
         __def_44(key(prv,X1)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
29.3.1.1. __def_3 (X1,X2) :- __def_45(prv), __type_8(X1), __type_7(X2).
           Equivalent to:
29.3.1.1.1. __def_3 (X1,X2) :- __def_45(prv), __type_7(X2), __type_8(X1).
             This is implied by:
29.3.1.1.1.1. #false() :- __def_45(prv).
               __def_45(prv) is impossible.
29.4. __def_3 (X1,X2) :- knows_old(X2), knows_old(key(prv,X1)).
       Examine all ways of building knows_old(key(prv,X1)) in the body.
       The 2 possibilities are:
       knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
       knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
29.4.1. __def_3 (X1,X2) :- __def_51(prv), agent(X1), knows_old(X2).
         This is implied by:
29.4.1.1. #false() :- __def_51(prv).
           __def_51(prv) is impossible.
29.4.2. __def_3 (X1,X2) :- __def_62(prv), __def_63(X1), knows_old(X2).
         Infer __def_3 (X1,X2) using __def_3(X1,X2) :- __def_63(X1), knows_old(X2).
29.4.2.1. __def_63(X1) :- __def_62(prv), __def_63(X1), knows_old(X2).
           Because the following simpler clause holds:
29.4.2.1.1. __def_63(X1) :- __def_63(X1). is a tautology.
29.4.2.2. knows_old(X2) :- __def_62(prv), __def_63(X1), knows_old(X2).
           Because the following simpler clause holds:
29.4.2.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
. lemma 30:
30. __def_58(prv).
     Infer __def_58(prv) using __def_58(prv).
. lemma 31:
31. __def_83(dec(X1,X2)) :- __def_81(X2), __type_18(X1).
     Infer __def_83(dec(X1,X2)) using __def_83(dec(X1,X2)) :- __type_18(X1), __def_81(X2).
31.1. __type_18(X1) :- __def_81(X2), __type_18(X1).
       Because the following simpler clause holds:
31.1.1. __type_18(X1) :- __type_18(X1). is a tautology.
31.2. __def_81(X2) :- __def_81(X2), __type_18(X1).
       Because the following simpler clause holds:
31.2.1. __def_81(X2) :- __def_81(X2). is a tautology.
. lemma 32:
32. __def_16(passwd_old(X1,X2)) :- __def_14 (X1,X2,X3).
     Examine all ways of building __def_14 (X1,X2,X3) in the body.
     The 3 possibilities are:
     __def_14(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_10(X3).
     __def_14(X1,X2,X3) :- knows_old(X1), __def_15(X3).
     __def_14(X1,X2,X3) :- knows_old(X1), __def_19(X3).
32.1. __def_16(passwd_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2), __def_10(X3).
       Equivalent to:
32.1.1. __def_16(passwd_old(X1,X2)) :- __def_10(X3), __type_1(X1), agent(X2), agent(X1).
         Infer __def_16(passwd_old(X1,X2)) using __def_16(passwd_old(X1,X2)) :- knows_old(X1).
32.1.1.1. knows_old(X1) :- __def_10(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
32.1.1.1.1. knows_old(X1) :- __type_1(X1).
             By induction on X1 satisfying __type_1, X1 must start with i, alice, bob or server.
32.1.1.1.1.1. knows_old(i) :- __type_1(i).
               __type_1(i) must be by __type_1(i).
32.1.1.1.1.1.1. knows_old(i).
                 Infer knows_old(i) using knows_old(i).
32.1.1.1.1.2. knows_old(alice) :- __type_1(alice).
               __type_1(alice) must be by __type_1(alice).
32.1.1.1.1.2.1. knows_old(alice).
                 Infer knows_old(alice) using knows_old(alice).
32.1.1.1.1.3. knows_old(bob) :- __type_1(bob).
               __type_1(bob) must be by __type_1(bob).
32.1.1.1.1.3.1. knows_old(bob).
                 Infer knows_old(bob) using knows_old(bob).
32.1.1.1.1.4. knows_old(server) :- __type_1(server).
               __type_1(server) must be by __type_1(server).
32.1.1.1.1.4.1. knows_old(server).
                 Infer knows_old(server) using knows_old(server).
32.2. __def_16(passwd_old(X1,X2)) :- knows_old(X1), __def_15(X3).
       Equivalent to:
32.2.1. __def_16(passwd_old(X1,X2)) :- __def_15(X3), knows_old(X1).
         Infer __def_16(passwd_old(X1,X2)) using __def_16(passwd_old(X1,X2)) :- knows_old(X1).
32.2.1.1. knows_old(X1) :- __def_15(X3), knows_old(X1).
           Because the following simpler clause holds:
32.2.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
32.3. __def_16(passwd_old(X1,X2)) :- knows_old(X1), __def_19(X3).
       Equivalent to:
32.3.1. __def_16(passwd_old(X1,X2)) :- __def_19(X3), knows_old(X1).
         Infer __def_16(passwd_old(X1,X2)) using __def_16(passwd_old(X1,X2)) :- knows_old(X1).
32.3.1.1. knows_old(X1) :- __def_19(X3), knows_old(X1).
           Because the following simpler clause holds:
32.3.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 33:
33. __def_32(nil).: see 28.1.1.1.1.1.2.1.1.1.1.2.1.1.1.1.
. lemma 34:
34. __def_35 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(X4,nil))).
     Equivalent to:
34.1. __def_35 (X1,X2,X3) :- knows_old(cons(X1,cons(X4,nil))), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).
       knows_old(cons(X1,cons(X4,nil))) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
34.1.1. __def_35 (X1,X2,X3) :- knows_old(X1), knows_old(cons(X4,nil)), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).
         This is implied by:
34.1.1.1. __def_35 (X1,X2,X3) :- knows_old(X1), knows_old(crypt(X2,key(sym,r_old(X1,X3)))).
           Examine all ways of building knows_old(crypt(X2,key(sym,r_old(X1,X3)))) in the body.
           The 4 possibilities are:
           knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
           knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
           knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
           knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
34.1.1.1.1. __def_35 (X1,X2,X3) :- __def_28(X2), __def_29(key(sym,r_old(X1,X3))), knows_old(X1).
             Infer __def_35 (X1,X2,X3) using __def_35(X1,X2,X3) :- knows_old(X1), __def_36(X2).
34.1.1.1.1.1. knows_old(X1) :- __def_28(X2), __def_29(key(sym,r_old(X1,X3))), knows_old(X1).
               Because the following simpler clause holds:
34.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
34.1.1.1.1.2. __def_36(X2) :- __def_28(X2), __def_29(key(sym,r_old(X1,X3))), knows_old(X1).
               Because the following simpler clause holds:
34.1.1.1.1.2.1. __def_36(X2) :- __def_28(X2).: see 5.1.1.1.1.1.1.2.1.
34.1.1.1.2. __def_35 (X1,X2,X3) :- __def_24(X2), __def_25(key(sym,r_old(X1,X3))), knows_old(X1).
             Infer __def_35 (X1,X2,X3) using __def_35(X1,X2,X3) :- knows_old(X1), __def_24(X2).
34.1.1.1.2.1. knows_old(X1) :- __def_24(X2), __def_25(key(sym,r_old(X1,X3))), knows_old(X1).
               Because the following simpler clause holds:
34.1.1.1.2.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
34.1.1.1.2.2. __def_24(X2) :- __def_24(X2), __def_25(key(sym,r_old(X1,X3))), knows_old(X1).
               Because the following simpler clause holds:
34.1.1.1.2.2.1. __def_24(X2) :- __def_24(X2).: see 5.1.1.1.1.1.2.2.1.
34.1.1.1.3. __def_35 (X1,X2,X3) :- __type_7(X2), __def_44(key(sym,r_old(X1,X3))), knows_old(X1).
             Equivalent to:
34.1.1.1.3.1. __def_35 (X1,X2,X3) :- __def_44(key(sym,r_old(X1,X3))), __type_7(X2), knows_old(X1).
               Infer __def_35 (X1,X2,X3) using __def_35(X1,X2,X3) :- knows_old(X1), __type_7(X2).
34.1.1.1.3.1.1. knows_old(X1) :- __def_44(key(sym,r_old(X1,X3))), __type_7(X2), knows_old(X1).
                 Because the following simpler clause holds:
34.1.1.1.3.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
34.1.1.1.3.1.2. __type_7(X2) :- __def_44(key(sym,r_old(X1,X3))), __type_7(X2), knows_old(X1).
                 Because the following simpler clause holds:
34.1.1.1.3.1.2.1. __type_7(X2) :- __type_7(X2).: see 5.1.1.1.1.1.3.1.2.1.
34.1.1.1.4. __def_35 (X1,X2,X3) :- knows_old(X2), knows_old(key(sym,r_old(X1,X3))), knows_old(X1).
             Equivalent to:
34.1.1.1.4.1. __def_35 (X1,X2,X3) :- knows_old(X2), knows_old(X1), knows_old(key(sym,r_old(X1,X3))).
               Examine all ways of building knows_old(key(sym,r_old(X1,X3))) in the body.
               The 2 possibilities are:
               knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
               knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
34.1.1.1.4.1.1. __def_35 (X1,X2,X3) :- __def_51(sym), agent(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                 This is implied by:
34.1.1.1.4.1.1.1. __def_35 (X1,X2,X3) :- agent(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                   agent(r_old(X1,X3)) is impossible.
34.1.1.1.4.1.2. __def_35 (X1,X2,X3) :- __def_62(sym), __def_63(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                 This is implied by:
34.1.1.1.4.1.2.1. __def_35 (X1,X2,X3) :- __def_63(r_old(X1,X3)), knows_old(X2), knows_old(X1).
                   __def_63(r_old(X1,X3)) is impossible.
. lemma 35:
35. __def_46 (X1,X2,X3,X4) :- knows_old(crypt(cons(noncea_old(X2,X3),cons(X1,nil)),key(sym,X4))).
     Infer __def_46 (X1,X2,X3,X4) using __def_46(X1,X2,X3,X4).
. lemma 36:
36. __def_89(cons(X1,X2)) :- __def_91(X2), __type_20(X1).
     Infer __def_89(cons(X1,X2)) using __def_89(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
36.1. __type_20(X1) :- __def_91(X2), __type_20(X1).
       Because the following simpler clause holds:
36.1.1. __type_20(X1) :- __type_20(X1). is a tautology.
36.2. __def_91(X2) :- __def_91(X2), __type_20(X1).
       Because the following simpler clause holds:
36.2.1. __def_91(X2) :- __def_91(X2). is a tautology.
. lemma 37:
37. __type_19(X1) :- __def_84 (X2,X3,X1).
     __def_84 (X2,X3,X1) must be by __def_84(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_78(X3).
37.1. __type_19(X1) :- agent(X2), __type_1(X2), agent(X3), __def_78(X1).
       Equivalent to:
37.1.1. __type_19(X1) :- __def_78(X1), __type_1(X2), agent(X3), agent(X2).
         Because the following simpler clause holds:
37.1.1.1. __type_19(X1) :- __def_78(X1).
           By induction on X1 satisfying __def_78, must start with r_current.
37.1.1.1.1. __type_19(r_current(X1,X2)) :- __def_78(r_current(X1,X2)).
             __def_78(r_current(X1,X2)) must be by __def_78(r_current(X1,X2)) :- knows_current(X1).
37.1.1.1.1.1. __type_19(r_current(X1,X2)) :- knows_current(X1).
               Infer __type_19(r_current(X1,X2)) using __type_19(r_current(X1,X2)) :- knows_current(X1).
37.1.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 38:
38. __def_61(sym).
     Infer __def_61(sym) using __def_61(sym).
. lemma 39:
39. __def_63(i).
     Infer __def_63(i) using __def_63(i).
. lemma 40:
40. __type_4(X1) :- __def_23 (X2,X3,X1).
     __def_23 (X2,X3,X1) must be by __def_23(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_17(X3).
40.1. __type_4(X1) :- agent(X2), __type_1(X2), agent(X3), __def_17(X1).
       Equivalent to:
40.1.1. __type_4(X1) :- __def_17(X1), __type_1(X2), agent(X3), agent(X2).
         Because the following simpler clause holds:
40.1.1.1. __type_4(X1) :- __def_17(X1).
           By induction on X1 satisfying __def_17, must start with r_old.
40.1.1.1.1. __type_4(r_old(X1,X2)) :- __def_17(r_old(X1,X2)).
             __def_17(r_old(X1,X2)) must be by __def_17(r_old(X1,X2)) :- knows_old(X1).
40.1.1.1.1.1. __type_4(r_old(X1,X2)) :- knows_old(X1).
               Infer __type_4(r_old(X1,X2)) using __type_4(r_old(X1,X2)) :- knows_old(X1).
40.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 41:
41. __def_107 (X1,X2,X3,X4) :- knows_current(crypt(cons(noncea_current(X2,X3),cons(X1,nil)),key(sym,X4))).
     Examine all ways of building knows_current(crypt(cons(noncea_current(X2,X3),cons(X1,nil)),key(sym,X4))) in the body.
     The 5 possibilities are:
     knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
     knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
     knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
     knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
     knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
41.1. __def_107 (X1,X2,X3,X4) :- __type_22(cons(noncea_current(X2,X3),cons(X1,nil))), __def_105(key(sym,X4)).
       Equivalent to:
41.1.1. __def_107 (X1,X2,X3,X4) :- __def_105(key(sym,X4)), __type_22(cons(noncea_current(X2,X3),cons(X1,nil))).
         __def_105(key(sym,X4)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
41.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_106(sym), __type_23(X4), __type_22(cons(noncea_current(X2,X3),cons(X1,nil))).
           Equivalent to:
41.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_106(sym), __type_22(cons(noncea_current(X2,X3),cons(X1,nil))), __type_23(X4).
             This is implied by:
41.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __type_22(cons(noncea_current(X2,X3),cons(X1,nil))), __type_23(X4).
               __type_22(cons(noncea_current(X2,X3),cons(X1,nil))) is impossible.
41.2. __def_107 (X1,X2,X3,X4) :- __def_28(cons(noncea_current(X2,X3),cons(X1,nil))), __def_29(key(sym,X4)).
       __def_28(cons(noncea_current(X2,X3),cons(X1,nil))) must be by __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
41.2.1. __def_107 (X1,X2,X3,X4) :- __type_5(noncea_current(X2,X3)), __def_30(cons(X1,nil)), __def_29(key(sym,X4)).
         Equivalent to:
41.2.1.1. __def_107 (X1,X2,X3,X4) :- __def_29(key(sym,X4)), __def_30(cons(X1,nil)), __type_5(noncea_current(X2,X3)).
           __def_29(key(sym,X4)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
41.2.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_33(sym), __def_34(X4), __def_30(cons(X1,nil)), __type_5(noncea_current(X2,X3)).
             Equivalent to:
41.2.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_30(cons(X1,nil)), __def_33(sym), __def_34(X4), __type_5(noncea_current(X2,X3)).
               This is implied by:
41.2.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_30(cons(X1,nil)), __def_34(X4), __type_5(noncea_current(X2,X3)).
                 __def_30(cons(X1,nil)) must be by __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
41.2.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_31(X1), __def_32(nil), __def_34(X4), __type_5(noncea_current(X2,X3)).
                   This is implied by:
41.2.1.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_31(X1), __def_34(X4), __type_5(noncea_current(X2,X3)).
                     __type_5(noncea_current(X2,X3)) is impossible.
41.3. __def_107 (X1,X2,X3,X4) :- __type_7(cons(noncea_current(X2,X3),cons(X1,nil))), __def_44(key(sym,X4)).
       Equivalent to:
41.3.1. __def_107 (X1,X2,X3,X4) :- __def_44(key(sym,X4)), __type_7(cons(noncea_current(X2,X3),cons(X1,nil))).
         __def_44(key(sym,X4)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
41.3.1.1. __def_107 (X1,X2,X3,X4) :- __def_45(sym), __type_8(X4), __type_7(cons(noncea_current(X2,X3),cons(X1,nil))).
           Equivalent to:
41.3.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_45(sym), __type_7(cons(noncea_current(X2,X3),cons(X1,nil))), __type_8(X4).
             This is implied by:
41.3.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __type_7(cons(noncea_current(X2,X3),cons(X1,nil))), __type_8(X4).
               __type_7(cons(noncea_current(X2,X3),cons(X1,nil))) is impossible.
41.4. __def_107 (X1,X2,X3,X4) :- __def_97(cons(noncea_current(X2,X3),cons(X1,nil))), __def_98(key(sym,X4)).
       __def_97(cons(noncea_current(X2,X3),cons(X1,nil))) must be by __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
41.4.1. __def_107 (X1,X2,X3,X4) :- __type_21(noncea_current(X2,X3)), __def_99(cons(X1,nil)), __def_98(key(sym,X4)).
         Equivalent to:
41.4.1.1. __def_107 (X1,X2,X3,X4) :- __def_98(key(sym,X4)), __def_99(cons(X1,nil)), __type_21(noncea_current(X2,X3)).
           __def_98(key(sym,X4)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
41.4.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_102(sym), __def_103(X4), __def_99(cons(X1,nil)), __type_21(noncea_current(X2,X3)).
             This is implied by:
41.4.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_103(X4), __def_99(cons(X1,nil)), __type_21(noncea_current(X2,X3)).
               __def_99(cons(X1,nil)) must be by __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
41.4.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_100(X1), __def_101(nil), __def_103(X4), __type_21(noncea_current(X2,X3)).
                 This is implied by:
41.4.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_100(X1), __def_103(X4), __type_21(noncea_current(X2,X3)).
                   __type_21(noncea_current(X2,X3)) must be by __type_21(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
41.4.1.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- agent(X2), knows_current(X2), agent(X3), __def_100(X1), __def_103(X4).
                     Equivalent to:
41.4.1.1.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_100(X1), __def_103(X4), agent(X3), agent(X2), knows_current(X2).
                       Infer __def_107 (X1,X2,X3,X4) using __def_107(X1,X2,X3,X4) :- __def_92(X1), agent(X2), knows_current(X2), agent(X3), __def_95(X4).
41.4.1.1.1.1.1.1.1.1.1. __def_92(X1) :- __def_100(X1), __def_103(X4), agent(X3), agent(X2), knows_current(X2).
                         Because the following simpler clause holds:
41.4.1.1.1.1.1.1.1.1.1.1. __def_92(X1) :- __def_100(X1).
                           By induction on X1 satisfying __def_100, must start with nonceb_current.
41.4.1.1.1.1.1.1.1.1.1.1.1. __def_92(nonceb_current(X1,X2)) :- __def_100(nonceb_current(X1,X2)).
                             __def_100(nonceb_current(X1,X2)) must be by __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
41.4.1.1.1.1.1.1.1.1.1.1.1.1. __def_92(nonceb_current(X1,X2)) :- knows_current(X1).
                               Infer __def_92(nonceb_current(X1,X2)) using __def_92(nonceb_current(X1,X2)) :- knows_current(X1).
41.4.1.1.1.1.1.1.1.1.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
41.4.1.1.1.1.1.1.1.1.2. agent(X2) :- __def_100(X1), __def_103(X4), agent(X3), agent(X2), knows_current(X2).
                         Because the following simpler clause holds:
41.4.1.1.1.1.1.1.1.1.2.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
41.4.1.1.1.1.1.1.1.1.3. knows_current(X2) :- __def_100(X1), __def_103(X4), agent(X3), agent(X2), knows_current(X2).
                         Because the following simpler clause holds:
41.4.1.1.1.1.1.1.1.1.3.1. knows_current(X1) :- agent(X1).
                           By induction on X2 satisfying agent, X2 must start with i, alice, bob or server.
41.4.1.1.1.1.1.1.1.1.3.1.1. knows_current(i) :- agent(i).
                             agent(i) must be by agent(i).
41.4.1.1.1.1.1.1.1.1.3.1.1.1. knows_current(i).: see 18.1.1.2.1.1.1.
41.4.1.1.1.1.1.1.1.1.3.1.2. knows_current(alice) :- agent(alice).
                             agent(alice) must be by agent(alice).
41.4.1.1.1.1.1.1.1.1.3.1.2.1. knows_current(alice).: see 18.1.1.2.1.2.1.
41.4.1.1.1.1.1.1.1.1.3.1.3. knows_current(bob) :- agent(bob).
                             agent(bob) must be by agent(bob).
41.4.1.1.1.1.1.1.1.1.3.1.3.1. knows_current(bob).: see 18.1.1.2.1.3.1.
41.4.1.1.1.1.1.1.1.1.3.1.4. knows_current(server) :- agent(server).
                             agent(server) must be by agent(server).
41.4.1.1.1.1.1.1.1.1.3.1.4.1. knows_current(server).: see 18.1.1.2.1.4.1.
41.4.1.1.1.1.1.1.1.1.4. agent(X3) :- __def_100(X1), __def_103(X4), agent(X3), agent(X2), knows_current(X2).
                         Because the following simpler clause holds:
41.4.1.1.1.1.1.1.1.1.4.1. agent(X3) :- agent(X3). is a tautology.
41.4.1.1.1.1.1.1.1.1.5. __def_95(X4) :- __def_100(X1), __def_103(X4), agent(X3), agent(X2), knows_current(X2).
                         Because the following simpler clause holds:
41.4.1.1.1.1.1.1.1.1.5.1. __def_95(X1) :- __def_103(X1).
                           By induction on X4 satisfying __def_103, must start with r_current.
41.4.1.1.1.1.1.1.1.1.5.1.1. __def_95(r_current(X1,X2)) :- __def_103(r_current(X1,X2)).
                             __def_103(r_current(X1,X2)) must be by __def_103(r_current(X1,X2)) :- knows_current(X1).
41.4.1.1.1.1.1.1.1.1.5.1.1.1. __def_95(r_current(X1,X2)) :- knows_current(X1).
                               Infer __def_95(r_current(X1,X2)) using __def_95(r_current(X1,X2)) :- knows_current(X1).
41.4.1.1.1.1.1.1.1.1.5.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
41.5. __def_107 (X1,X2,X3,X4) :- knows_current(cons(noncea_current(X2,X3),cons(X1,nil))), knows_current(key(sym,X4)).
       knows_current(cons(noncea_current(X2,X3),cons(X1,nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
41.5.1. __def_107 (X1,X2,X3,X4) :- knows_current(noncea_current(X2,X3)), knows_current(cons(X1,nil)), knows_current(key(sym,X4)).
         Equivalent to:
41.5.1.1. __def_107 (X1,X2,X3,X4) :- knows_current(cons(X1,nil)), knows_current(key(sym,X4)), knows_current(noncea_current(X2,X3)).
           knows_current(cons(X1,nil)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
41.5.1.1.1. __def_107 (X1,X2,X3,X4) :- knows_current(X1), knows_current(nil), knows_current(key(sym,X4)), knows_current(noncea_current(X2,X3)).
             Equivalent to:
41.5.1.1.1.1. __def_107 (X1,X2,X3,X4) :- knows_current(X1), knows_current(key(sym,X4)), knows_current(nil), knows_current(noncea_current(X2,X3)).
               This is implied by:
41.5.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- knows_current(X1), knows_current(key(sym,X4)), knows_current(noncea_current(X2,X3)).
                 Examine all ways of building knows_current(key(sym,X4)) in the body.
                 The 3 possibilities are:
                 knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                 knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                 knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
41.5.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- __def_51(sym), agent(X4), knows_current(X1), knows_current(noncea_current(X2,X3)).
                   This is implied by:
41.5.1.1.1.1.1.1.1. __def_107 (X1,X2,X3,X4) :- agent(X4), knows_current(X1), knows_current(noncea_current(X2,X3)).
                     knows_current(noncea_current(X2,X3)) is impossible.
41.5.1.1.1.1.1.2. __def_107 (X1,X2,X3,X4) :- __def_62(sym), __def_63(X4), knows_current(X1), knows_current(noncea_current(X2,X3)).
                   This is implied by:
41.5.1.1.1.1.1.2.1. __def_107 (X1,X2,X3,X4) :- __def_63(X4), knows_current(X1), knows_current(noncea_current(X2,X3)).
                     knows_current(noncea_current(X2,X3)) is impossible.
41.5.1.1.1.1.1.3. __def_107 (X1,X2,X3,X4) :- __def_12(sym), __def_13(X4), knows_current(X1), knows_current(noncea_current(X2,X3)).
                   This is implied by:
41.5.1.1.1.1.1.3.1. __def_107 (X1,X2,X3,X4) :- __def_13(X4), knows_current(X1), knows_current(noncea_current(X2,X3)).
                     knows_current(noncea_current(X2,X3)) is impossible.
. lemma 42:
42. __type_15(X1) :- __def_3 (X1,X2), testable_old(X2).
     __def_3 (X1,X2) must be by __def_3(X1,X2) :- __def_63(X1), knows_old(X2).
42.1. __type_15(X1) :- __def_63(X1), knows_old(X2), testable_old(X2).
       Because the following simpler clause holds:
42.1.1. __type_15(X1) :- __def_63(X1).
         By induction on X1 satisfying __def_63, must start with i.
42.1.1.1. __type_15(i) :- __def_63(i).
           __def_63(i) must be by __def_63(i).
42.1.1.1.1. __type_15(i).
             Infer __type_15(i) using __type_15(i).
. lemma 43:
43. __def_91(cons(X1,X2)) :- __def_93(X2), __def_92(X1).
     Equivalent to:
43.1. __def_91(cons(X1,X2)) :- __def_92(X1), __def_93(X2).
       Infer __def_91(cons(X1,X2)) using __def_91(cons(X1,X2)) :- __def_92(X1), __def_93(X2).
43.1.1. __def_92(X1) :- __def_92(X1), __def_93(X2).
         Because the following simpler clause holds:
43.1.1.1. __def_92(X1) :- __def_92(X1). is a tautology.
43.1.2. __def_93(X2) :- __def_92(X1), __def_93(X2).
         Because the following simpler clause holds:
43.1.2.1. __def_93(X2) :- __def_93(X2). is a tautology.
. lemma 44:
44. __type_18(X1) :- __def_79 (X2,X1).
     __def_79 (X2,X1) must be by __def_79(X1,X2) :- knows_current(X1), knows_current(X2).
44.1. __type_18(X1) :- knows_current(X2), knows_current(X1).
       Because the following simpler clause holds:
44.1.1. __type_18(X1) :- knows_current(X1).
         By induction on X1 satisfying knows_current, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
44.1.1.1. __type_18(dec(X1,X2)) :- knows_current(dec(X1,X2)).
           knows_current(dec(X1,X2)) must be by knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.1.1. __type_18(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
             Infer __type_18(dec(X1,X2)) using __type_18(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.1.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2).
               Because the following simpler clause holds:
44.1.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
44.1.1.1.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).
               Because the following simpler clause holds:
44.1.1.1.1.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
44.1.1.2. __type_18(s(X1)) :- knows_current(s(X1)).
           knows_current(s(X1)) must be by knows_current(s(X)) :- knows_current(X).
44.1.1.2.1. __type_18(s(X1)) :- knows_current(X1).
             Infer __type_18(s(X1)) using __type_18(s(X)) :- knows_current(X).
44.1.1.2.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
44.1.1.3. __type_18(nil) :- knows_current(nil).
           knows_current(nil) must be by knows_current(nil).
44.1.1.3.1. __type_18(nil).
             Infer __type_18(nil) using __type_18(nil).
44.1.1.4. __type_18(nonceb_old(X1,X2)) :- knows_current(nonceb_old(X1,X2)).
           knows_current(nonceb_old(X1,X2)) must be by knows_current(nonceb_old(X1,X2)).
44.1.1.4.1. __type_18(nonceb_old(X1,X2)).
             Infer __type_18(nonceb_old(X1,X2)) using __type_18(nonceb_old(X1,X2)).
44.1.1.5. __type_18(i) :- knows_current(i).
           knows_current(i) must be by knows_current(i).
44.1.1.5.1. __type_18(i).
             Infer __type_18(i) using __type_18(i).
44.1.1.6. __type_18(p(X1)) :- knows_current(p(X1)).
           knows_current(p(X1)) must be by knows_current(p(X)) :- knows_current(X).
44.1.1.6.1. __type_18(p(X1)) :- knows_current(X1).
             Infer __type_18(p(X1)) using __type_18(p(X)) :- knows_current(X).
44.1.1.6.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
44.1.1.7. __type_18(key(X1,X2)) :- knows_current(key(X1,X2)).
           Examine all ways of building knows_current(key(X1,X2)) in the body.
           The 3 possibilities are:
           knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
           knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
           knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
44.1.1.7.1. __type_18(key(X1,X2)) :- __def_51(X1), agent(X2).
             Infer __type_18(key(X1,X2)) using __type_18(key(X1,X2)) :- __def_51(X1), agent(X2).
44.1.1.7.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
44.1.1.7.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
44.1.1.7.2. __type_18(key(X1,X2)) :- __def_62(X1), __def_63(X2).
             Infer __type_18(key(X1,X2)) using __type_18(key(X1,X2)) :- __def_62(X1), __def_63(X2).
44.1.1.7.2.1. __def_62(X1) :- __def_62(X1), __def_63(X2).
               Because the following simpler clause holds:
44.1.1.7.2.1.1. __def_62(X1) :- __def_62(X1). is a tautology.
44.1.1.7.2.2. __def_63(X2) :- __def_62(X1), __def_63(X2).
               Because the following simpler clause holds:
44.1.1.7.2.2.1. __def_63(X2) :- __def_63(X2). is a tautology.
44.1.1.7.3. __type_18(key(X1,X2)) :- __def_12(X1), __def_13(X2).
             Infer __type_18(key(X1,X2)) using __type_18(key(X1,X2)) :- __def_12(X1), __def_13(X2).
44.1.1.7.3.1. __def_12(X1) :- __def_12(X1), __def_13(X2).
               Because the following simpler clause holds:
44.1.1.7.3.1.1. __def_12(X1) :- __def_12(X1).: see 15.3.1.1.1.1.1.1.
44.1.1.7.3.2. __def_13(X2) :- __def_12(X1), __def_13(X2).
               Because the following simpler clause holds:
44.1.1.7.3.2.1. __def_13(X2) :- __def_13(X2). is a tautology.
44.1.1.8. __type_18(cons(X1,X2)) :- knows_current(cons(X1,X2)).
           knows_current(cons(X1,X2)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.8.1. __type_18(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
             Infer __type_18(cons(X1,X2)) using __type_18(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.8.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
44.1.1.8.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
44.1.1.9. __type_18(crypt(X1,X2)) :- knows_current(crypt(X1,X2)).
           Examine all ways of building knows_current(crypt(X1,X2)) in the body.
           The 9 possibilities are:
           knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
           knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
           knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
           knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
           knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
           knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
           knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
           knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
           knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.9.1. __type_18(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
44.1.1.9.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).
               Because the following simpler clause holds:
44.1.1.9.1.1.1. __type_22(X1) :- __type_22(X1). is a tautology.
44.1.1.9.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).
               Because the following simpler clause holds:
44.1.1.9.1.2.1. __def_105(X2) :- __def_105(X2). is a tautology.
44.1.1.9.2. __type_18(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
44.1.1.9.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
44.1.1.9.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
44.1.1.9.3. __type_18(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
44.1.1.9.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).
               Because the following simpler clause holds:
44.1.1.9.3.1.1. __def_85(X1) :- __def_85(X1). is a tautology.
44.1.1.9.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).
               Because the following simpler clause holds:
44.1.1.9.3.2.1. __def_86(X2) :- __def_86(X2). is a tautology.
44.1.1.9.4. __type_18(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
44.1.1.9.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).
               Because the following simpler clause holds:
44.1.1.9.4.1.1. __def_21(X1) :- __def_21(X1). is a tautology.
44.1.1.9.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).
               Because the following simpler clause holds:
44.1.1.9.4.2.1. __def_22(X2) :- __def_22(X2). is a tautology.
44.1.1.9.5. __type_18(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
44.1.1.9.5.1. __def_17(X1) :- __def_17(X1), __type_2(X2).
               Because the following simpler clause holds:
44.1.1.9.5.1.1. __def_17(X1) :- __def_17(X1). is a tautology.
44.1.1.9.5.2. __type_2(X2) :- __def_17(X1), __type_2(X2).
               Because the following simpler clause holds:
44.1.1.9.5.2.1. __type_2(X2) :- __type_2(X2). is a tautology.
44.1.1.9.6. __type_18(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
44.1.1.9.6.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
44.1.1.9.6.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
44.1.1.9.7. __type_18(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
44.1.1.9.7.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
44.1.1.9.7.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
44.1.1.9.8. __type_18(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
44.1.1.9.8.1. __def_97(X1) :- __def_97(X1), __def_98(X2).
               Because the following simpler clause holds:
44.1.1.9.8.1.1. __def_97(X1) :- __def_97(X1). is a tautology.
44.1.1.9.8.2. __def_98(X2) :- __def_97(X1), __def_98(X2).
               Because the following simpler clause holds:
44.1.1.9.8.2.1. __def_98(X2) :- __def_98(X2). is a tautology.
44.1.1.9.9. __type_18(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
             Infer __type_18(crypt(X1,X2)) using __type_18(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.9.9.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
44.1.1.9.9.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
44.1.1.10. __type_18(noncea_old(X1,X2)) :- knows_current(noncea_old(X1,X2)).
            knows_current(noncea_old(X1,X2)) must be by knows_current(noncea_old(X1,X2)).
44.1.1.10.1. __type_18(noncea_old(X1,X2)).
              Infer __type_18(noncea_old(X1,X2)) using __type_18(noncea_old(X1,X2)).
44.1.1.11. __type_18(alice) :- knows_current(alice).
            knows_current(alice) must be by knows_current(alice).
44.1.1.11.1. __type_18(alice).
              Infer __type_18(alice) using __type_18(alice).
44.1.1.12. __type_18(enc(X1,X2)) :- knows_current(enc(X1,X2)).
            Examine all ways of building knows_current(enc(X1,X2)) in the body.
            The 4 possibilities are:
            knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
            knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
            knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
            knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
44.1.1.12.1. __type_18(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
              Infer __type_18(enc(X1,X2)) using __type_18(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
44.1.1.12.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
44.1.1.12.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
44.1.1.12.2. __type_18(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
              Infer __type_18(enc(X1,X2)) using __type_18(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
44.1.1.12.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).
                Because the following simpler clause holds:
44.1.1.12.2.1.1. __def_80(X1) :- __def_80(X1). is a tautology.
44.1.1.12.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).
                Because the following simpler clause holds:
44.1.1.12.2.2.1. __def_81(X2) :- __def_81(X2).: see 31.2.1.
44.1.1.12.3. __type_18(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
              Infer __type_18(enc(X1,X2)) using __type_18(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
44.1.1.12.3.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
44.1.1.12.3.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
44.1.1.12.4. __type_18(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
              Infer __type_18(enc(X1,X2)) using __type_18(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
44.1.1.12.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).
                Because the following simpler clause holds:
44.1.1.12.4.1.1. __def_76(X1) :- __def_76(X1). is a tautology.
44.1.1.12.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).
                Because the following simpler clause holds:
44.1.1.12.4.2.1. __def_77(X2) :- __def_77(X2). is a tautology.
44.1.1.13. __type_18(bob) :- knows_current(bob).
            knows_current(bob) must be by knows_current(bob).
44.1.1.13.1. __type_18(bob).
              Infer __type_18(bob) using __type_18(bob).
44.1.1.14. __type_18(server) :- knows_current(server).
            knows_current(server) must be by knows_current(server).
44.1.1.14.1. __type_18(server).
              Infer __type_18(server) using __type_18(server).
44.1.1.15. __type_18(passwd_old(X1,X2)) :- knows_current(passwd_old(X1,X2)).
            knows_current(passwd_old(X1,X2)) must be by knows_current(passwd_old(X1,X2)).
44.1.1.15.1. __type_18(passwd_old(X1,X2)).
              Infer __type_18(passwd_old(X1,X2)) using __type_18(passwd_old(X1,X2)).
. lemma 45:
45. __def_20(passwd_old(X1,X2)) :- __def_18 (X1,X3).
     __def_18 (X1,X3) must be by __def_18(X1,X2) :- knows_old(X1), knows_old(X2).
45.1. __def_20(passwd_old(X1,X2)) :- knows_old(X1), knows_old(X3).
       Equivalent to:
45.1.1. __def_20(passwd_old(X1,X2)) :- knows_old(X3), knows_old(X1).
         Infer __def_20(passwd_old(X1,X2)) using __def_20(passwd_old(X1,X2)) :- knows_old(X1).
45.1.1.1. knows_old(X1) :- knows_old(X3), knows_old(X1).
           Because the following simpler clause holds:
45.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 46:
46. __def_95(r_current(X1,X2)) :- __def_88 (X1,X3,X2).
     Examine all ways of building __def_88 (X1,X3,X2) in the body.
     The 3 possibilities are:
     __def_88(X1,X2,X3) :- knows_current(X1), __def_85(X2).
     __def_88(X1,X2,X3) :- knows_current(X1), __def_97(X2).
     __def_88(X1,X2,X3) :- knows_current(X1), __type_22(X2).
46.1. __def_95(r_current(X1,X2)) :- knows_current(X1), __def_85(X3).
       Equivalent to:
46.1.1. __def_95(r_current(X1,X2)) :- __def_85(X3), knows_current(X1).
         Infer __def_95(r_current(X1,X2)) using __def_95(r_current(X1,X2)) :- knows_current(X1).
46.1.1.1. knows_current(X1) :- __def_85(X3), knows_current(X1).: see 16.1.1.1.
46.2. __def_95(r_current(X1,X2)) :- knows_current(X1), __def_97(X3).
       Equivalent to:
46.2.1. __def_95(r_current(X1,X2)) :- __def_97(X3), knows_current(X1).
         Infer __def_95(r_current(X1,X2)) using __def_95(r_current(X1,X2)) :- knows_current(X1).
46.2.1.1. knows_current(X1) :- __def_97(X3), knows_current(X1).: see 16.2.1.1.
46.3. __def_95(r_current(X1,X2)) :- knows_current(X1), __type_22(X3).
       Equivalent to:
46.3.1. __def_95(r_current(X1,X2)) :- __type_22(X3), knows_current(X1).
         Infer __def_95(r_current(X1,X2)) using __def_95(r_current(X1,X2)) :- knows_current(X1).
46.3.1.1. knows_current(X1) :- __type_22(X3), knows_current(X1).: see 16.3.1.1.
. lemma 47:
47. __def_102(sym).
     Infer __def_102(sym) using __def_102(sym).
. lemma 48:
48. __def_13(session_old(X1,X2)) :- agent(X2), agent(X1).
     Infer __def_13(session_old(X1,X2)) using __def_13(session_old(X1,X2)) :- agent(X1), agent(X2).
48.1. agent(X1) :- agent(X2), agent(X1).
       Because the following simpler clause holds:
48.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
48.2. agent(X2) :- agent(X2), agent(X1).
       Because the following simpler clause holds:
48.2.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
. lemma 49:
49. __def_96 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).
     Equivalent to:
49.1. __def_96 (X1,X2,X3) :- knows_current(cons(X1,cons(X4,nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).
       knows_current(cons(X1,cons(X4,nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
49.1.1. __def_96 (X1,X2,X3) :- knows_current(X1), knows_current(cons(X4,nil)), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).
         This is implied by:
49.1.1.1. __def_96 (X1,X2,X3) :- knows_current(X1), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).
           Examine all ways of building knows_current(crypt(X2,key(sym,r_current(X1,X3)))) in the body.
           The 8 possibilities are:
           knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
           knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
           knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
           knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
           knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
           knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
           knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
           knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
49.1.1.1.1. __def_96 (X1,X2,X3) :- __type_22(X2), __def_105(key(sym,r_current(X1,X3))), knows_current(X1).
             Equivalent to:
49.1.1.1.1.1. __def_96 (X1,X2,X3) :- __def_105(key(sym,r_current(X1,X3))), __type_22(X2), knows_current(X1).
               Infer __def_96 (X1,X2,X3) using __def_96(X1,X2,X3) :- knows_current(X1), __type_22(X2).
49.1.1.1.1.1.1. knows_current(X1) :- __def_105(key(sym,r_current(X1,X3))), __type_22(X2), knows_current(X1).
                 Because the following simpler clause holds:
49.1.1.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
49.1.1.1.1.1.2. __type_22(X2) :- __def_105(key(sym,r_current(X1,X3))), __type_22(X2), knows_current(X1).
                 Because the following simpler clause holds:
49.1.1.1.1.1.2.1. __type_22(X2) :- __type_22(X2). is a tautology.
49.1.1.1.2. __def_96 (X1,X2,X3) :- __def_28(X2), __def_29(key(sym,r_current(X1,X3))), knows_current(X1).
             __def_29(key(sym,r_current(X1,X3))) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
49.1.1.1.2.1. __def_96 (X1,X2,X3) :- __def_33(sym), __def_34(r_current(X1,X3)), __def_28(X2), knows_current(X1).
               Equivalent to:
49.1.1.1.2.1.1. __def_96 (X1,X2,X3) :- __def_28(X2), __def_33(sym), __def_34(r_current(X1,X3)), knows_current(X1).
                 This is implied by:
49.1.1.1.2.1.1.1. __def_96 (X1,X2,X3) :- __def_28(X2), __def_34(r_current(X1,X3)), knows_current(X1).
                   __def_34(r_current(X1,X3)) is impossible.
49.1.1.1.3. __def_96 (X1,X2,X3) :- __def_85(X2), __def_86(key(sym,r_current(X1,X3))), knows_current(X1).
             Infer __def_96 (X1,X2,X3) using __def_96(X1,X2,X3) :- knows_current(X1), __def_85(X2).
49.1.1.1.3.1. knows_current(X1) :- __def_85(X2), __def_86(key(sym,r_current(X1,X3))), knows_current(X1).
               Because the following simpler clause holds:
49.1.1.1.3.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
49.1.1.1.3.2. __def_85(X2) :- __def_85(X2), __def_86(key(sym,r_current(X1,X3))), knows_current(X1).
               Because the following simpler clause holds:
49.1.1.1.3.2.1. __def_85(X2) :- __def_85(X2). is a tautology.
49.1.1.1.4. __def_96 (X1,X2,X3) :- __def_17(X2), __type_2(key(sym,r_current(X1,X3))), knows_current(X1).
             __type_2(key(sym,r_current(X1,X3))) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
49.1.1.1.4.1. __def_96 (X1,X2,X3) :- __def_12(sym), __def_13(r_current(X1,X3)), __def_17(X2), knows_current(X1).
               This is implied by:
49.1.1.1.4.1.1. __def_96 (X1,X2,X3) :- __def_13(r_current(X1,X3)), __def_17(X2), knows_current(X1).
                 __def_13(r_current(X1,X3)) is impossible.
49.1.1.1.5. __def_96 (X1,X2,X3) :- __def_24(X2), __def_25(key(sym,r_current(X1,X3))), knows_current(X1).
             __def_25(key(sym,r_current(X1,X3))) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
49.1.1.1.5.1. __def_96 (X1,X2,X3) :- __def_26(sym), __type_4(r_current(X1,X3)), __def_24(X2), knows_current(X1).
               Equivalent to:
49.1.1.1.5.1.1. __def_96 (X1,X2,X3) :- __def_24(X2), __def_26(sym), __type_4(r_current(X1,X3)), knows_current(X1).
                 This is implied by:
49.1.1.1.5.1.1.1. __def_96 (X1,X2,X3) :- __def_24(X2), __type_4(r_current(X1,X3)), knows_current(X1).
                   __type_4(r_current(X1,X3)) is impossible.
49.1.1.1.6. __def_96 (X1,X2,X3) :- __type_7(X2), __def_44(key(sym,r_current(X1,X3))), knows_current(X1).
             Equivalent to:
49.1.1.1.6.1. __def_96 (X1,X2,X3) :- __def_44(key(sym,r_current(X1,X3))), __type_7(X2), knows_current(X1).
               __def_44(key(sym,r_current(X1,X3))) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
49.1.1.1.6.1.1. __def_96 (X1,X2,X3) :- __def_45(sym), __type_8(r_current(X1,X3)), __type_7(X2), knows_current(X1).
                 Equivalent to:
49.1.1.1.6.1.1.1. __def_96 (X1,X2,X3) :- __def_45(sym), __type_7(X2), __type_8(r_current(X1,X3)), knows_current(X1).
                   This is implied by:
49.1.1.1.6.1.1.1.1. __def_96 (X1,X2,X3) :- __type_7(X2), __type_8(r_current(X1,X3)), knows_current(X1).
                     __type_8(r_current(X1,X3)) is impossible.
49.1.1.1.7. __def_96 (X1,X2,X3) :- __def_97(X2), __def_98(key(sym,r_current(X1,X3))), knows_current(X1).
             Infer __def_96 (X1,X2,X3) using __def_96(X1,X2,X3) :- knows_current(X1), __def_97(X2).
49.1.1.1.7.1. knows_current(X1) :- __def_97(X2), __def_98(key(sym,r_current(X1,X3))), knows_current(X1).
               Because the following simpler clause holds:
49.1.1.1.7.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
49.1.1.1.7.2. __def_97(X2) :- __def_97(X2), __def_98(key(sym,r_current(X1,X3))), knows_current(X1).
               Because the following simpler clause holds:
49.1.1.1.7.2.1. __def_97(X2) :- __def_97(X2). is a tautology.
49.1.1.1.8. __def_96 (X1,X2,X3) :- knows_current(X2), knows_current(key(sym,r_current(X1,X3))), knows_current(X1).
             Equivalent to:
49.1.1.1.8.1. __def_96 (X1,X2,X3) :- knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
               Examine all ways of building knows_current(key(sym,r_current(X1,X3))) in the body.
               The 3 possibilities are:
               knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
               knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
               knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
49.1.1.1.8.1.1. __def_96 (X1,X2,X3) :- __def_51(sym), agent(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                 This is implied by:
49.1.1.1.8.1.1.1. __def_96 (X1,X2,X3) :- agent(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                   agent(r_current(X1,X3)) is impossible.
49.1.1.1.8.1.2. __def_96 (X1,X2,X3) :- __def_62(sym), __def_63(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                 This is implied by:
49.1.1.1.8.1.2.1. __def_96 (X1,X2,X3) :- __def_63(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                   __def_63(r_current(X1,X3)) is impossible.
49.1.1.1.8.1.3. __def_96 (X1,X2,X3) :- __def_12(sym), __def_13(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                 This is implied by:
49.1.1.1.8.1.3.1. __def_96 (X1,X2,X3) :- __def_13(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                   __def_13(r_current(X1,X3)) is impossible.
. lemma 50:
50. __def_40(nil).: see 5.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.2.1.1.1.1.
. lemma 51:
51. __def_70(cons(X1,X2)) :- __def_9(X2), __def_71(X1).
     Equivalent to:
51.1. __def_70(cons(X1,X2)) :- __def_71(X1), __def_9(X2).
       Infer __def_70(cons(X1,X2)) using __def_70(cons(X1,X2)) :- __def_71(X1), __def_9(X2).
51.1.1. __def_71(X1) :- __def_71(X1), __def_9(X2).
         Because the following simpler clause holds:
51.1.1.1. __def_71(X1) :- __def_71(X1). is a tautology.
51.1.2. __def_9(X2) :- __def_71(X1), __def_9(X2).
         Because the following simpler clause holds:
51.1.2.1. __def_9(X2) :- __def_9(X2). is a tautology.
. lemma 52:
52. __def_75 (X1,X2,X3) :- knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))).
     knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
52.1. __def_75 (X1,X2,X3) :- knows_current(X1), knows_current(cons(enc(X3,passwd_current(X1,X2)),nil)).
       knows_current(cons(enc(X3,passwd_current(X1,X2)),nil)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
52.1.1. __def_75 (X1,X2,X3) :- knows_current(enc(X3,passwd_current(X1,X2))), knows_current(nil), knows_current(X1).
         Equivalent to:
52.1.1.1. __def_75 (X1,X2,X3) :- knows_current(X1), knows_current(enc(X3,passwd_current(X1,X2))), knows_current(nil).
           This is implied by:
52.1.1.1.1. __def_75 (X1,X2,X3) :- knows_current(X1), knows_current(enc(X3,passwd_current(X1,X2))).
             Examine all ways of building knows_current(enc(X3,passwd_current(X1,X2))) in the body.
             The 4 possibilities are:
             knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
             knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
             knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
             knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
52.1.1.1.1.1. __def_75 (X1,X2,X3) :- __def_72(X3), __def_73(passwd_current(X1,X2)), knows_current(X1).
               __def_73(passwd_current(X1,X2)) must be by __def_73(passwd_current(X1,X2)) :- agent(X1), agent(X2).
52.1.1.1.1.1.1. __def_75 (X1,X2,X3) :- agent(X1), agent(X2), __def_72(X3), knows_current(X1).
                 Equivalent to:
52.1.1.1.1.1.1.1. __def_75 (X1,X2,X3) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
                   Infer __def_75 (X1,X2,X3) using __def_75(X1,X2,X3) :- agent(X1), knows_current(X1), agent(X2), __def_72(X3).
52.1.1.1.1.1.1.1.1. agent(X1) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
                     Because the following simpler clause holds:
52.1.1.1.1.1.1.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
52.1.1.1.1.1.1.1.2. knows_current(X1) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
                     Because the following simpler clause holds:
52.1.1.1.1.1.1.1.2.1. knows_current(X1) :- agent(X1).
                       By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
52.1.1.1.1.1.1.1.2.1.1. knows_current(i) :- agent(i).: see 41.4.1.1.1.1.1.1.1.1.3.1.1.
52.1.1.1.1.1.1.1.2.1.2. knows_current(alice) :- agent(alice).: see 41.4.1.1.1.1.1.1.1.1.3.1.2.
52.1.1.1.1.1.1.1.2.1.3. knows_current(bob) :- agent(bob).: see 41.4.1.1.1.1.1.1.1.1.3.1.3.
52.1.1.1.1.1.1.1.2.1.4. knows_current(server) :- agent(server).: see 41.4.1.1.1.1.1.1.1.1.3.1.4.
52.1.1.1.1.1.1.1.3. agent(X2) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
                     Because the following simpler clause holds:
52.1.1.1.1.1.1.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
52.1.1.1.1.1.1.1.4. __def_72(X3) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
                     Because the following simpler clause holds:
52.1.1.1.1.1.1.1.4.1. __def_72(X3) :- __def_72(X3). is a tautology.
52.1.1.1.1.2. __def_75 (X1,X2,X3) :- __def_80(X3), __def_81(passwd_current(X1,X2)), knows_current(X1).
               Infer __def_75 (X1,X2,X3) using __def_75(X1,X2,X3) :- knows_current(X1), __def_80(X3).
52.1.1.1.1.2.1. knows_current(X1) :- __def_80(X3), __def_81(passwd_current(X1,X2)), knows_current(X1).
                 Because the following simpler clause holds:
52.1.1.1.1.2.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
52.1.1.1.1.2.2. __def_80(X3) :- __def_80(X3), __def_81(passwd_current(X1,X2)), knows_current(X1).
                 Because the following simpler clause holds:
52.1.1.1.1.2.2.1. __def_80(X3) :- __def_80(X3). is a tautology.
52.1.1.1.1.3. __def_75 (X1,X2,X3) :- knows_current(X3), knows_current(passwd_current(X1,X2)), knows_current(X1).
               Equivalent to:
52.1.1.1.1.3.1. __def_75 (X1,X2,X3) :- knows_current(X3), knows_current(X1), knows_current(passwd_current(X1,X2)).
                 knows_current(passwd_current(X1,X2)) is impossible.
52.1.1.1.1.4. __def_75 (X1,X2,X3) :- __def_76(X3), __def_77(passwd_current(X1,X2)), knows_current(X1).
               Infer __def_75 (X1,X2,X3) using __def_75(X1,X2,X3) :- knows_current(X1), __def_76(X3).
52.1.1.1.1.4.1. knows_current(X1) :- __def_76(X3), __def_77(passwd_current(X1,X2)), knows_current(X1).
                 Because the following simpler clause holds:
52.1.1.1.1.4.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
52.1.1.1.1.4.2. __def_76(X3) :- __def_76(X3), __def_77(passwd_current(X1,X2)), knows_current(X1).
                 Because the following simpler clause holds:
52.1.1.1.1.4.2.1. __def_76(X3) :- __def_76(X3). is a tautology.
. lemma 53:
53. __def_18 (X1,X2) :- knows_old(cons(X1,cons(X2,nil))).
     knows_old(cons(X1,cons(X2,nil))) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
53.1. __def_18 (X1,X2) :- knows_old(X1), knows_old(cons(X2,nil)).
       knows_old(cons(X2,nil)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
53.1.1. __def_18 (X1,X2) :- knows_old(X2), knows_old(nil), knows_old(X1).
         Equivalent to:
53.1.1.1. __def_18 (X1,X2) :- knows_old(X2), knows_old(X1), knows_old(nil).
           Infer __def_18 (X1,X2) using __def_18(X1,X2) :- knows_old(X1), knows_old(X2).
53.1.1.1.1. knows_old(X1) :- knows_old(X2), knows_old(X1), knows_old(nil).
             Because the following simpler clause holds:
53.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
53.1.1.1.2. knows_old(X2) :- knows_old(X2), knows_old(X1), knows_old(nil).
             Because the following simpler clause holds:
53.1.1.1.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
. lemma 54:
54. __def_30(cons(X1,X2)) :- __def_32(X2), __def_31(X1).
     Equivalent to:
54.1. __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
       Infer __def_30(cons(X1,X2)) using __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
54.1.1. __def_31(X1) :- __def_31(X1), __def_32(X2).
         Because the following simpler clause holds:
54.1.1.1. __def_31(X1) :- __def_31(X1). is a tautology.
54.1.2. __def_32(X2) :- __def_31(X1), __def_32(X2).
         Because the following simpler clause holds:
54.1.2.1. __def_32(X2) :- __def_32(X2). is a tautology.
. lemma 55:
55. __type_1(X1) :- agent(X1).: see 6.3.1.1.1.1.1.1.1.1.2.1.
. lemma 56:
56. __def_41(sym).
     Infer __def_41(sym) using __def_41(sym).
. lemma 57:
57. __def_92(nonceb_current(X1,X2)) :- __def_88 (X1,X3,X2).
     Examine all ways of building __def_88 (X1,X3,X2) in the body.
     The 3 possibilities are:
     __def_88(X1,X2,X3) :- knows_current(X1), __def_85(X2).
     __def_88(X1,X2,X3) :- knows_current(X1), __def_97(X2).
     __def_88(X1,X2,X3) :- knows_current(X1), __type_22(X2).
57.1. __def_92(nonceb_current(X1,X2)) :- knows_current(X1), __def_85(X3).
       Equivalent to:
57.1.1. __def_92(nonceb_current(X1,X2)) :- __def_85(X3), knows_current(X1).
         Infer __def_92(nonceb_current(X1,X2)) using __def_92(nonceb_current(X1,X2)) :- knows_current(X1).
57.1.1.1. knows_current(X1) :- __def_85(X3), knows_current(X1).: see 16.1.1.1.
57.2. __def_92(nonceb_current(X1,X2)) :- knows_current(X1), __def_97(X3).
       Equivalent to:
57.2.1. __def_92(nonceb_current(X1,X2)) :- __def_97(X3), knows_current(X1).
         Infer __def_92(nonceb_current(X1,X2)) using __def_92(nonceb_current(X1,X2)) :- knows_current(X1).
57.2.1.1. knows_current(X1) :- __def_97(X3), knows_current(X1).: see 16.2.1.1.
57.3. __def_92(nonceb_current(X1,X2)) :- knows_current(X1), __type_22(X3).
       Equivalent to:
57.3.1. __def_92(nonceb_current(X1,X2)) :- __type_22(X3), knows_current(X1).
         Infer __def_92(nonceb_current(X1,X2)) using __def_92(nonceb_current(X1,X2)) :- knows_current(X1).
57.3.1.1. knows_current(X1) :- __type_22(X3), knows_current(X1).: see 16.3.1.1.
. lemma 58:
58. __def_9(nil).
     Infer __def_9(nil) using __def_9(nil).
. lemma 59:
59. __def_120 (X1,X2) :- knows_current(crypt(X2,key(sym,X1))).
     Examine all ways of building knows_current(crypt(X2,key(sym,X1))) in the body.
     The 8 possibilities are:
     knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
     knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
     knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
     knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
     knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
     knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
     knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
     knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
59.1. __def_120 (X1,X2) :- __type_22(X2), __def_105(key(sym,X1)).
       Equivalent to:
59.1.1. __def_120 (X1,X2) :- __def_105(key(sym,X1)), __type_22(X2).
         __def_105(key(sym,X1)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
59.1.1.1. __def_120 (X1,X2) :- __def_106(sym), __type_23(X1), __type_22(X2).
           Equivalent to:
59.1.1.1.1. __def_120 (X1,X2) :- __def_106(sym), __type_22(X2), __type_23(X1).
             Infer __def_120 (X1,X2) using __def_120(X1,X2) :- __type_23(X1), __type_22(X2).
59.1.1.1.1.1. __type_23(X1) :- __def_106(sym), __type_22(X2), __type_23(X1).
               Because the following simpler clause holds:
59.1.1.1.1.1.1. __type_23(X1) :- __type_23(X1). is a tautology.
59.1.1.1.1.2. __type_22(X2) :- __def_106(sym), __type_22(X2), __type_23(X1).
               Because the following simpler clause holds:
59.1.1.1.1.2.1. __type_22(X2) :- __type_22(X2).: see 49.1.1.1.1.1.2.1.
59.2. __def_120 (X1,X2) :- __def_28(X2), __def_29(key(sym,X1)).
       __def_29(key(sym,X1)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
59.2.1. __def_120 (X1,X2) :- __def_33(sym), __def_34(X1), __def_28(X2).
         Equivalent to:
59.2.1.1. __def_120 (X1,X2) :- __def_28(X2), __def_33(sym), __def_34(X1).
           Infer __def_120 (X1,X2) using __def_120(X1,X2) :- __def_42(X1), __def_36(X2).
59.2.1.1.1. __def_42(X1) :- __def_28(X2), __def_33(sym), __def_34(X1).
             Because the following simpler clause holds:
59.2.1.1.1.1. __def_42(X1) :- __def_34(X1).
               By induction on X1 satisfying __def_34, must start with r_old.
59.2.1.1.1.1.1. __def_42(r_old(X1,X2)) :- __def_34(r_old(X1,X2)).: see 8.1.1.1.1.1.1.1.1.2.1.1.
59.2.1.1.2. __def_36(X2) :- __def_28(X2), __def_33(sym), __def_34(X1).
             Because the following simpler clause holds:
59.2.1.1.2.1. __def_36(X2) :- __def_28(X2).: see 5.1.1.1.1.1.1.2.1.
59.3. __def_120 (X1,X2) :- __def_85(X2), __def_86(key(sym,X1)).
       __def_86(key(sym,X1)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
59.3.1. __def_120 (X1,X2) :- __def_87(sym), __type_19(X1), __def_85(X2).
         Equivalent to:
59.3.1.1. __def_120 (X1,X2) :- __def_85(X2), __def_87(sym), __type_19(X1).
           Infer __def_120 (X1,X2) using __def_120(X1,X2) :- __type_19(X1), __def_85(X2).
59.3.1.1.1. __type_19(X1) :- __def_85(X2), __def_87(sym), __type_19(X1).
             Because the following simpler clause holds:
59.3.1.1.1.1. __type_19(X1) :- __type_19(X1). is a tautology.
59.3.1.1.2. __def_85(X2) :- __def_85(X2), __def_87(sym), __type_19(X1).
             Because the following simpler clause holds:
59.3.1.1.2.1. __def_85(X2) :- __def_85(X2).: see 49.1.1.1.3.2.1.
59.4. __def_120 (X1,X2) :- __def_17(X2), __type_2(key(sym,X1)).
       __type_2(key(sym,X1)) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
59.4.1. __def_120 (X1,X2) :- __def_12(sym), __def_13(X1), __def_17(X2).
         This is implied by:
59.4.1.1. #false() :- __def_12(sym).
           __def_12(sym) is impossible.
59.5. __def_120 (X1,X2) :- __def_24(X2), __def_25(key(sym,X1)).
       __def_25(key(sym,X1)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
59.5.1. __def_120 (X1,X2) :- __def_26(sym), __type_4(X1), __def_24(X2).
         Equivalent to:
59.5.1.1. __def_120 (X1,X2) :- __def_24(X2), __def_26(sym), __type_4(X1).
           Infer __def_120 (X1,X2) using __def_120(X1,X2) :- __type_4(X1), __def_24(X2).
59.5.1.1.1. __type_4(X1) :- __def_24(X2), __def_26(sym), __type_4(X1).
             Because the following simpler clause holds:
59.5.1.1.1.1. __type_4(X1) :- __type_4(X1). is a tautology.
59.5.1.1.2. __def_24(X2) :- __def_24(X2), __def_26(sym), __type_4(X1).
             Because the following simpler clause holds:
59.5.1.1.2.1. __def_24(X2) :- __def_24(X2).: see 5.1.1.1.1.1.2.2.1.
59.6. __def_120 (X1,X2) :- __type_7(X2), __def_44(key(sym,X1)).
       Equivalent to:
59.6.1. __def_120 (X1,X2) :- __def_44(key(sym,X1)), __type_7(X2).
         __def_44(key(sym,X1)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
59.6.1.1. __def_120 (X1,X2) :- __def_45(sym), __type_8(X1), __type_7(X2).
           Equivalent to:
59.6.1.1.1. __def_120 (X1,X2) :- __def_45(sym), __type_7(X2), __type_8(X1).
             Infer __def_120 (X1,X2) using __def_120(X1,X2) :- __type_8(X1), __type_7(X2).
59.6.1.1.1.1. __type_8(X1) :- __def_45(sym), __type_7(X2), __type_8(X1).
               Because the following simpler clause holds:
59.6.1.1.1.1.1. __type_8(X1) :- __type_8(X1). is a tautology.
59.6.1.1.1.2. __type_7(X2) :- __def_45(sym), __type_7(X2), __type_8(X1).
               Because the following simpler clause holds:
59.6.1.1.1.2.1. __type_7(X2) :- __type_7(X2).: see 5.1.1.1.1.1.3.1.2.1.
59.7. __def_120 (X1,X2) :- __def_97(X2), __def_98(key(sym,X1)).
       __def_98(key(sym,X1)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
59.7.1. __def_120 (X1,X2) :- __def_102(sym), __def_103(X1), __def_97(X2).
         Infer __def_120 (X1,X2) using __def_120(X1,X2) :- __def_103(X1), __def_97(X2).
59.7.1.1. __def_103(X1) :- __def_102(sym), __def_103(X1), __def_97(X2).
           Because the following simpler clause holds:
59.7.1.1.1. __def_103(X1) :- __def_103(X1). is a tautology.
59.7.1.2. __def_97(X2) :- __def_102(sym), __def_103(X1), __def_97(X2).
           Because the following simpler clause holds:
59.7.1.2.1. __def_97(X2) :- __def_97(X2).: see 49.1.1.1.7.2.1.
59.8. __def_120 (X1,X2) :- knows_current(X2), knows_current(key(sym,X1)).
       Examine all ways of building knows_current(key(sym,X1)) in the body.
       The 3 possibilities are:
       knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
       knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
       knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
59.8.1. __def_120 (X1,X2) :- __def_51(sym), agent(X1), knows_current(X2).
         This is implied by:
59.8.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
59.8.2. __def_120 (X1,X2) :- __def_62(sym), __def_63(X1), knows_current(X2).
         This is implied by:
59.8.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
59.8.3. __def_120 (X1,X2) :- __def_12(sym), __def_13(X1), knows_current(X2).
         This is implied by:
59.8.3.1. #false() :- __def_12(sym).: see 59.4.1.1.
. lemma 60:
60. __def_6(X1) :- knows_old(key(sym,X1)).
     Examine all ways of building knows_old(key(sym,X1)) in the body.
     The 2 possibilities are:
     knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
     knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
60.1. __def_6(X1) :- __def_51(sym), agent(X1).
       This is implied by:
60.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
60.2. __def_6(X1) :- __def_62(sym), __def_63(X1).
       This is implied by:
60.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
. lemma 61:
61. __def_4(X1) :- knows_old(key(pub,X1)).
     Examine all ways of building knows_old(key(pub,X1)) in the body.
     The 2 possibilities are:
     knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
     knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
61.1. __def_4(X1) :- __def_51(pub), agent(X1).
       Because the following simpler clause holds:
61.1.1. __def_4(X1) :- agent(X1).
         By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
61.1.1.1. __def_4(i) :- agent(i).
           agent(i) must be by agent(i).
61.1.1.1.1. __def_4(i).
             Infer __def_4(i) using __def_4(i).
61.1.1.2. __def_4(alice) :- agent(alice).
           agent(alice) must be by agent(alice).
61.1.1.2.1. __def_4(alice).
             Infer __def_4(alice) using __def_4(alice).
61.1.1.3. __def_4(bob) :- agent(bob).
           agent(bob) must be by agent(bob).
61.1.1.3.1. __def_4(bob).
             Infer __def_4(bob) using __def_4(bob).
61.1.1.4. __def_4(server) :- agent(server).
           agent(server) must be by agent(server).
61.1.1.4.1. __def_4(server).
             Infer __def_4(server) using __def_4(server).
61.2. __def_4(X1) :- __def_62(pub), __def_63(X1).
       Because the following simpler clause holds:
61.2.1. __def_4(X1) :- __def_63(X1).
         By induction on X1 satisfying __def_63, must start with i.
61.2.1.1. __def_4(i) :- __def_63(i).
           __def_63(i) must be by __def_63(i).
61.2.1.1.1. __def_4(i).: see 61.1.1.1.1.
. lemma 62:
62. __type_31(X1) :- __def_120 (X1,X2), testable_current(X2).
     Examine all ways of building __def_120 (X1,X2) in the body.
     The 6 possibilities are:
     __def_120(X1,X2) :- __def_42(X1), __def_36(X2).
     __def_120(X1,X2) :- __def_103(X1), __def_97(X2).
     __def_120(X1,X2) :- __type_4(X1), __def_24(X2).
     __def_120(X1,X2) :- __type_23(X1), __type_22(X2).
     __def_120(X1,X2) :- __type_19(X1), __def_85(X2).
     __def_120(X1,X2) :- __type_8(X1), __type_7(X2).
62.1. __type_31(X1) :- __def_42(X1), __def_36(X2), testable_current(X2).
       Equivalent to:
62.1.1. __type_31(X1) :- __def_36(X2), __def_42(X1), testable_current(X2).
         Because the following simpler clause holds:
62.1.1.1. __type_31(X1) :- __def_42(X1).
           By induction on X1 satisfying __def_42, must start with r_old.
62.1.1.1.1. __type_31(r_old(X1,X2)) :- __def_42(r_old(X1,X2)).
             __def_42(r_old(X1,X2)) must be by __def_42(r_old(X1,X2)) :- knows_old(X1).
62.1.1.1.1.1. __type_31(r_old(X1,X2)) :- knows_old(X1).
               Infer __type_31(r_old(X1,X2)) using __type_31(r_old(X1,X2)) :- knows_old(X1).
62.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
62.2. __type_31(X1) :- __def_103(X1), __def_97(X2), testable_current(X2).
       Because the following simpler clause holds:
62.2.1. __type_31(X1) :- __def_103(X1).
         By induction on X1 satisfying __def_103, must start with r_current.
62.2.1.1. __type_31(r_current(X1,X2)) :- __def_103(r_current(X1,X2)).
           __def_103(r_current(X1,X2)) must be by __def_103(r_current(X1,X2)) :- knows_current(X1).
62.2.1.1.1. __type_31(r_current(X1,X2)) :- knows_current(X1).
             Infer __type_31(r_current(X1,X2)) using __type_31(r_current(X1,X2)) :- knows_current(X1).
62.2.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
62.3. __type_31(X1) :- __type_4(X1), __def_24(X2), testable_current(X2).
       Equivalent to:
62.3.1. __type_31(X1) :- __def_24(X2), __type_4(X1), testable_current(X2).
         Because the following simpler clause holds:
62.3.1.1. __type_31(X1) :- __type_4(X1).
           By induction on X1 satisfying __type_4, must start with r_old.
62.3.1.1.1. __type_31(r_old(X1,X2)) :- __type_4(r_old(X1,X2)).
             __type_4(r_old(X1,X2)) must be by __type_4(r_old(X1,X2)) :- knows_old(X1).
62.3.1.1.1.1. __type_31(r_old(X1,X2)) :- knows_old(X1).: see 62.1.1.1.1.1.
62.4. __type_31(X1) :- __type_23(X1), __type_22(X2), testable_current(X2).
       Equivalent to:
62.4.1. __type_31(X1) :- __type_22(X2), __type_23(X1), testable_current(X2).
         Because the following simpler clause holds:
62.4.1.1. __type_31(X1) :- __type_23(X1).
           By induction on X1 satisfying __type_23, must start with r_current.
62.4.1.1.1. __type_31(r_current(X1,X2)) :- __type_23(r_current(X1,X2)).
             __type_23(r_current(X1,X2)) must be by __type_23(r_current(X1,X2)) :- knows_current(X1).
62.4.1.1.1.1. __type_31(r_current(X1,X2)) :- knows_current(X1).: see 62.2.1.1.1.
62.5. __type_31(X1) :- __type_19(X1), __def_85(X2), testable_current(X2).
       Equivalent to:
62.5.1. __type_31(X1) :- __def_85(X2), __type_19(X1), testable_current(X2).
         Because the following simpler clause holds:
62.5.1.1. __type_31(X1) :- __type_19(X1).
           By induction on X1 satisfying __type_19, must start with r_current.
62.5.1.1.1. __type_31(r_current(X1,X2)) :- __type_19(r_current(X1,X2)).
             __type_19(r_current(X1,X2)) must be by __type_19(r_current(X1,X2)) :- knows_current(X1).
62.5.1.1.1.1. __type_31(r_current(X1,X2)) :- knows_current(X1).: see 62.2.1.1.1.
62.6. __type_31(X1) :- __type_8(X1), __type_7(X2), testable_current(X2).
       Equivalent to:
62.6.1. __type_31(X1) :- __type_7(X2), __type_8(X1), testable_current(X2).
         Because the following simpler clause holds:
62.6.1.1. __type_31(X1) :- __type_8(X1).
           By induction on X1 satisfying __type_8, must start with r_old.
62.6.1.1.1. __type_31(r_old(X1,X2)) :- __type_8(r_old(X1,X2)).
             __type_8(r_old(X1,X2)) must be by __type_8(r_old(X1,X2)) :- knows_old(X1).
62.6.1.1.1.1. __type_31(r_old(X1,X2)) :- knows_old(X1).: see 62.1.1.1.1.1.
. lemma 63:
63. __def_24(noncea_old(X1,X2)) :- __def_23 (X1,X2,X3).
     __def_23 (X1,X2,X3) must be by __def_23(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_17(X3).
63.1. __def_24(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2), __def_17(X3).
       Equivalent to:
63.1.1. __def_24(noncea_old(X1,X2)) :- __def_17(X3), __type_1(X1), agent(X2), agent(X1).
         Infer __def_24(noncea_old(X1,X2)) using __def_24(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
63.1.1.1. agent(X1) :- __def_17(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
63.1.1.1.1. agent(X1) :- __type_1(X1).: see 18.1.1.1.1.
63.1.1.2. __type_1(X1) :- __def_17(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
63.1.1.2.1. __type_1(X1) :- __type_1(X1).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.3.1.2.1.
63.1.1.3. agent(X2) :- __def_17(X3), __type_1(X1), agent(X2), agent(X1).
           Because the following simpler clause holds:
63.1.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
. lemma 64:
64. __def_62(prv).
     Infer __def_62(prv) using __def_62(prv).
. lemma 65:
65. __def_74(session_current(X1,X2)) :- agent(X2), agent(X1).
     Infer __def_74(session_current(X1,X2)) using __def_74(session_current(X1,X2)) :- agent(X1), agent(X2).
65.1. agent(X1) :- agent(X2), agent(X1).: see 48.1.
65.2. agent(X2) :- agent(X2), agent(X1).: see 48.2.
. lemma 66:
66. __def_11(passwd_old(X1,X2)) :- agent(X2), agent(X1).
     Infer __def_11(passwd_old(X1,X2)) using __def_11(passwd_old(X1,X2)) :- agent(X1), agent(X2).
66.1. agent(X1) :- agent(X2), agent(X1).: see 48.1.
66.2. agent(X2) :- agent(X2), agent(X1).: see 48.2.
. lemma 67:
67. __def_104 (X1,X2) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))).
     Equivalent to:
67.1. __def_104 (X1,X2) :- knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
       Examine all ways of building knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))) in the body.
       The 5 possibilities are:
       knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
       knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
       knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
       knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
       knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
67.1.1. __def_104 (X1,X2) :- __type_22(cons(noncea_current(X3,X4),cons(X1,nil))), __def_105(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
         Equivalent to:
67.1.1.1. __def_104 (X1,X2) :- __def_105(key(sym,X2)), __type_22(cons(noncea_current(X3,X4),cons(X1,nil))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
           __def_105(key(sym,X2)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
67.1.1.1.1. __def_104 (X1,X2) :- __def_106(sym), __type_23(X2), __type_22(cons(noncea_current(X3,X4),cons(X1,nil))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
             Equivalent to:
67.1.1.1.1.1. __def_104 (X1,X2) :- __def_106(sym), __type_22(cons(noncea_current(X3,X4),cons(X1,nil))), __type_23(X2), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
               This is implied by:
67.1.1.1.1.1.1. __def_104 (X1,X2) :- __type_22(cons(noncea_current(X3,X4),cons(X1,nil))), __type_23(X2), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                 __type_22(cons(noncea_current(X3,X4),cons(X1,nil))) is impossible.
67.1.2. __def_104 (X1,X2) :- __def_28(cons(noncea_current(X3,X4),cons(X1,nil))), __def_29(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
         __def_28(cons(noncea_current(X3,X4),cons(X1,nil))) must be by __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
67.1.2.1. __def_104 (X1,X2) :- __type_5(noncea_current(X3,X4)), __def_30(cons(X1,nil)), __def_29(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
           Equivalent to:
67.1.2.1.1. __def_104 (X1,X2) :- __def_29(key(sym,X2)), __def_30(cons(X1,nil)), __type_5(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
             __def_29(key(sym,X2)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
67.1.2.1.1.1. __def_104 (X1,X2) :- __def_33(sym), __def_34(X2), __def_30(cons(X1,nil)), __type_5(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
               Equivalent to:
67.1.2.1.1.1.1. __def_104 (X1,X2) :- __def_30(cons(X1,nil)), __def_33(sym), __def_34(X2), __type_5(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                 This is implied by:
67.1.2.1.1.1.1.1. __def_104 (X1,X2) :- __def_30(cons(X1,nil)), __def_34(X2), __type_5(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                   __def_30(cons(X1,nil)) must be by __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
67.1.2.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_31(X1), __def_32(nil), __def_34(X2), __type_5(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                     This is implied by:
67.1.2.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_31(X1), __def_34(X2), __type_5(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                       __type_5(noncea_current(X3,X4)) is impossible.
67.1.3. __def_104 (X1,X2) :- __type_7(cons(noncea_current(X3,X4),cons(X1,nil))), __def_44(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
         Equivalent to:
67.1.3.1. __def_104 (X1,X2) :- __def_44(key(sym,X2)), __type_7(cons(noncea_current(X3,X4),cons(X1,nil))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
           __def_44(key(sym,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
67.1.3.1.1. __def_104 (X1,X2) :- __def_45(sym), __type_8(X2), __type_7(cons(noncea_current(X3,X4),cons(X1,nil))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
             Equivalent to:
67.1.3.1.1.1. __def_104 (X1,X2) :- __def_45(sym), __type_7(cons(noncea_current(X3,X4),cons(X1,nil))), __type_8(X2), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
               This is implied by:
67.1.3.1.1.1.1. __def_104 (X1,X2) :- __type_7(cons(noncea_current(X3,X4),cons(X1,nil))), __type_8(X2), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                 __type_7(cons(noncea_current(X3,X4),cons(X1,nil))) is impossible.
67.1.4. __def_104 (X1,X2) :- __def_97(cons(noncea_current(X3,X4),cons(X1,nil))), __def_98(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
         __def_97(cons(noncea_current(X3,X4),cons(X1,nil))) must be by __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
67.1.4.1. __def_104 (X1,X2) :- __type_21(noncea_current(X3,X4)), __def_99(cons(X1,nil)), __def_98(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
           Equivalent to:
67.1.4.1.1. __def_104 (X1,X2) :- __def_98(key(sym,X2)), __def_99(cons(X1,nil)), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
             __def_98(key(sym,X2)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
67.1.4.1.1.1. __def_104 (X1,X2) :- __def_102(sym), __def_103(X2), __def_99(cons(X1,nil)), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
               This is implied by:
67.1.4.1.1.1.1. __def_104 (X1,X2) :- __def_103(X2), __def_99(cons(X1,nil)), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                 __def_99(cons(X1,nil)) must be by __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
67.1.4.1.1.1.1.1. __def_104 (X1,X2) :- __def_100(X1), __def_101(nil), __def_103(X2), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                   Infer __def_104 (X1,X2) using __def_104(X1,X2) :- __def_100(X1), __def_103(X2), __def_78(X2).
67.1.4.1.1.1.1.1.1. __def_100(X1) :- __def_100(X1), __def_101(nil), __def_103(X2), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                     Because the following simpler clause holds:
67.1.4.1.1.1.1.1.1.1. __def_100(X1) :- __def_100(X1). is a tautology.
67.1.4.1.1.1.1.1.2. __def_103(X2) :- __def_100(X1), __def_101(nil), __def_103(X2), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                     Because the following simpler clause holds:
67.1.4.1.1.1.1.1.2.1. __def_103(X2) :- __def_103(X2). is a tautology.
67.1.4.1.1.1.1.1.3. __def_78(X2) :- __def_100(X1), __def_101(nil), __def_103(X2), __type_21(noncea_current(X3,X4)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
                     Because the following simpler clause holds:
67.1.4.1.1.1.1.1.3.1. __def_78(X1) :- __def_103(X1).
                       By induction on X2 satisfying __def_103, must start with r_current.
67.1.4.1.1.1.1.1.3.1.1. __def_78(r_current(X1,X2)) :- __def_103(r_current(X1,X2)).
                         __def_103(r_current(X1,X2)) must be by __def_103(r_current(X1,X2)) :- knows_current(X1).
67.1.4.1.1.1.1.1.3.1.1.1. __def_78(r_current(X1,X2)) :- knows_current(X1).
                           Infer __def_78(r_current(X1,X2)) using __def_78(r_current(X1,X2)) :- knows_current(X1).
67.1.4.1.1.1.1.1.3.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
67.1.5. __def_104 (X1,X2) :- knows_current(cons(noncea_current(X3,X4),cons(X1,nil))), knows_current(key(sym,X2)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))).
         Equivalent to:
67.1.5.1. __def_104 (X1,X2) :- knows_current(cons(noncea_current(X3,X4),cons(X1,nil))), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(key(sym,X2)).
           knows_current(cons(noncea_current(X3,X4),cons(X1,nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
67.1.5.1.1. __def_104 (X1,X2) :- knows_current(noncea_current(X3,X4)), knows_current(cons(X1,nil)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(key(sym,X2)).
             Equivalent to:
67.1.5.1.1.1. __def_104 (X1,X2) :- knows_current(cons(X1,nil)), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
               knows_current(cons(X1,nil)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
67.1.5.1.1.1.1. __def_104 (X1,X2) :- knows_current(X1), knows_current(nil), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                 Equivalent to:
67.1.5.1.1.1.1.1. __def_104 (X1,X2) :- knows_current(X1), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(key(sym,X2)), knows_current(nil), knows_current(noncea_current(X3,X4)).
                   This is implied by:
67.1.5.1.1.1.1.1.1. __def_104 (X1,X2) :- knows_current(X1), knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                     Examine all ways of building knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))) in the body.
                     The 3 possibilities are:
                     knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
                     knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
                     knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
67.1.5.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_80(crypt(X2,key(pub,session_current(X3,X4)))), __def_81(passwd_current(X3,X4)), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                       __def_80(crypt(X2,key(pub,session_current(X3,X4)))) must be by __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
67.1.5.1.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_82(X2), __def_83(key(pub,session_current(X3,X4))), __def_81(passwd_current(X3,X4)), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                         Equivalent to:
67.1.5.1.1.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_81(passwd_current(X3,X4)), __def_82(X2), __def_83(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_82(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_82(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), __def_82(X2), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1. #false() :- __def_82(X1), agent(X1).
                                   By induction on X1 satisfying __def_82, must start with r_current.
67.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1.1. #false() :- __def_82(r_current(X1,X2)), agent(r_current(X1,X2)).
                                     __def_82(r_current(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.1.1.1.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_82(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.1.1.1.1.2.1. #false() :- __def_82(X1), __def_63(X1).
                                 By induction on X1 satisfying __def_82, must start with r_current.
67.1.5.1.1.1.1.1.1.1.1.1.1.2.1.1. #false() :- __def_82(r_current(X1,X2)), __def_63(r_current(X1,X2)).
                                   __def_82(r_current(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.1.1.1.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_82(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.1.1.1.1.3.1. #false() :- __def_82(X1), __def_13(X1).
                                 By induction on X1 satisfying __def_82, must start with r_current.
67.1.5.1.1.1.1.1.1.1.1.1.1.3.1.1. #false() :- __def_82(r_current(X1,X2)), __def_13(r_current(X1,X2)).
                                   __def_82(r_current(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2. __def_104 (X1,X2) :- knows_current(crypt(X2,key(pub,session_current(X3,X4)))), knows_current(passwd_current(X3,X4)), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                       Equivalent to:
67.1.5.1.1.1.1.1.1.2.1. __def_104 (X1,X2) :- knows_current(X1), knows_current(crypt(X2,key(pub,session_current(X3,X4)))), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                         Examine all ways of building knows_current(crypt(X2,key(pub,session_current(X3,X4)))) in the body.
                         The 9 possibilities are:
                         knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
                         knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                         knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
                         knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
                         knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                         knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                         knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                         knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
                         knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
67.1.5.1.1.1.1.1.1.2.1.1. __def_104 (X1,X2) :- __type_22(X2), __def_105(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.1.1. __def_104 (X1,X2) :- __def_105(key(pub,session_current(X3,X4))), __type_22(X2), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                             This is implied by:
67.1.5.1.1.1.1.1.1.2.1.1.1.1. __def_104 (X1,X2) :- __type_22(X2), knows_current(X1), knows_current(key(sym,X2)).
                               Examine all ways of building knows_current(key(sym,X2)) in the body.
                               The 3 possibilities are:
                               knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                               knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                               knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __type_22(X2), knows_current(X1).
                                 Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), __type_22(X2), agent(X2), knows_current(X1).
                                   Special case of:
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1.1.1. #false() :- agent(X1), __type_22(X1).
                                     By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1. #false() :- agent(i), __type_22(i).
                                       agent(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2. #false() :- agent(alice), __type_22(alice).
                                       agent(alice) is impossible.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.3. #false() :- agent(bob), __type_22(bob).
                                       agent(bob) is impossible.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.1.1.1.4. #false() :- agent(server), __type_22(server).
                                       agent(server) is impossible.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __type_22(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.1.1.1.2.1. #false() :- __def_63(X1), __type_22(X1).
                                   By induction on X1 satisfying __def_63, must start with i.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.2.1.1. #false() :- __def_63(i), __type_22(i).
                                     __def_63(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __type_22(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.1.1.1.3.1. #false() :- __def_13(X1), __type_22(X1).
                                   By induction on X1 satisfying __def_13, must start with session_old.
67.1.5.1.1.1.1.1.1.2.1.1.1.1.3.1.1. #false() :- __def_13(session_old(X1,X2)), __type_22(session_old(X1,X2)).
                                     __def_13(session_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.2. __def_104 (X1,X2) :- __def_28(X2), __def_29(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.2.1.2.1. __def_104 (X1,X2) :- __def_28(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.2.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_28(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.2.1.1.1. __def_104 (X1,X2) :- __def_28(X2), __def_51(sym), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.2.1.1.1.1. #false() :- agent(X1), __def_28(X1).: see 8.1.3.1.1.1.1.1.1.3.1.1.1.1.1.1.
67.1.5.1.1.1.1.1.1.2.1.2.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_28(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.2.1.2.1. __def_104 (X1,X2) :- __def_28(X2), __def_62(sym), __def_63(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.2.1.2.1.1. #false() :- __def_28(X1), __def_63(X1).: see 8.1.3.1.1.1.1.1.1.3.1.1.1.2.1.1.
67.1.5.1.1.1.1.1.1.2.1.2.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_28(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.2.1.3.1. #false() :- __def_28(X1), __def_13(X1).
                                 By induction on X1 satisfying __def_28, must start with cons.
67.1.5.1.1.1.1.1.1.2.1.2.1.3.1.1. #false() :- __def_28(cons(X1,X2)), __def_13(cons(X1,X2)).
                                   __def_28(cons(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.3. __def_104 (X1,X2) :- __def_85(X2), __def_86(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.2.1.3.1. __def_104 (X1,X2) :- __def_85(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.3.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_85(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.3.1.1.1. __def_104 (X1,X2) :- __def_51(sym), __def_85(X2), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.3.1.1.1.1. #false() :- agent(X1), __def_85(X1).
                                   By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
67.1.5.1.1.1.1.1.1.2.1.3.1.1.1.1.1. #false() :- agent(i), __def_85(i).
                                     agent(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.3.1.1.1.1.2. #false() :- agent(alice), __def_85(alice).
                                     agent(alice) is impossible.
67.1.5.1.1.1.1.1.1.2.1.3.1.1.1.1.3. #false() :- agent(bob), __def_85(bob).
                                     agent(bob) is impossible.
67.1.5.1.1.1.1.1.1.2.1.3.1.1.1.1.4. #false() :- agent(server), __def_85(server).
                                     agent(server) is impossible.
67.1.5.1.1.1.1.1.1.2.1.3.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_85(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.3.1.2.1. #false() :- __def_63(X1), __def_85(X1).
                                 By induction on X1 satisfying __def_63, must start with i.
67.1.5.1.1.1.1.1.1.2.1.3.1.2.1.1. #false() :- __def_63(i), __def_85(i).
                                   __def_63(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.3.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_85(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.3.1.3.1. #false() :- __def_13(X1), __def_85(X1).
                                 By induction on X1 satisfying __def_13, must start with session_old.
67.1.5.1.1.1.1.1.1.2.1.3.1.3.1.1. #false() :- __def_13(session_old(X1,X2)), __def_85(session_old(X1,X2)).
                                   __def_13(session_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.4. __def_104 (X1,X2) :- __def_21(X2), __def_22(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.2.1.4.1. __def_104 (X1,X2) :- __def_21(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.4.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_21(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.4.1.1.1. __def_104 (X1,X2) :- __def_21(X2), __def_51(sym), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.4.1.1.1.1. #false() :- agent(X1), __def_21(X1).: see 8.1.3.1.1.1.1.1.1.2.1.1.1.1.1.1.
67.1.5.1.1.1.1.1.1.2.1.4.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_21(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.4.1.2.1. __def_104 (X1,X2) :- __def_21(X2), __def_62(sym), __def_63(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.4.1.2.1.1. #false() :- __def_63(X1), __def_21(X1).: see 8.1.3.1.1.1.1.1.1.2.1.1.1.2.1.1.
67.1.5.1.1.1.1.1.1.2.1.4.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_21(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.4.1.3.1. #false() :- __def_21(X1), __def_13(X1).
                                 By induction on X1 satisfying __def_21, must start with r_old.
67.1.5.1.1.1.1.1.1.2.1.4.1.3.1.1. #false() :- __def_21(r_old(X1,X2)), __def_13(r_old(X1,X2)).
                                   __def_21(r_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.5. __def_104 (X1,X2) :- __def_17(X2), __type_2(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.2.1.5.1. __def_104 (X1,X2) :- __def_17(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.5.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_17(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.5.1.1.1. __def_104 (X1,X2) :- __def_17(X2), __def_51(sym), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.5.1.1.1.1. #false() :- agent(X1), __def_17(X1).: see 8.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.
67.1.5.1.1.1.1.1.1.2.1.5.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_17(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.5.1.2.1. __def_104 (X1,X2) :- __def_17(X2), __def_62(sym), __def_63(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.5.1.2.1.1. #false() :- __def_17(X1), __def_63(X1).: see 8.1.3.1.1.1.1.1.1.1.1.1.1.2.1.1.
67.1.5.1.1.1.1.1.1.2.1.5.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_17(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.5.1.3.1. #false() :- __def_17(X1), __def_13(X1).
                                 By induction on X1 satisfying __def_17, must start with r_old.
67.1.5.1.1.1.1.1.1.2.1.5.1.3.1.1. #false() :- __def_17(r_old(X1,X2)), __def_13(r_old(X1,X2)).
                                   __def_17(r_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.6. __def_104 (X1,X2) :- __def_24(X2), __def_25(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.2.1.6.1. __def_104 (X1,X2) :- __def_24(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.6.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_24(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.6.1.1.1. __def_104 (X1,X2) :- __def_24(X2), __def_51(sym), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.6.1.1.1.1. #false() :- __def_24(X1), agent(X1).: see 8.1.3.1.1.1.1.1.1.3.1.2.1.1.1.1.
67.1.5.1.1.1.1.1.1.2.1.6.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_24(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.6.1.2.1. __def_104 (X1,X2) :- __def_24(X2), __def_62(sym), __def_63(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.6.1.2.1.1. #false() :- __def_24(X1), __def_63(X1).: see 8.1.3.1.1.1.1.1.1.3.1.2.1.2.1.1.
67.1.5.1.1.1.1.1.1.2.1.6.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_24(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.6.1.3.1. #false() :- __def_24(X1), __def_13(X1).
                                 By induction on X1 satisfying __def_24, must start with noncea_old.
67.1.5.1.1.1.1.1.1.2.1.6.1.3.1.1. #false() :- __def_24(noncea_old(X1,X2)), __def_13(noncea_old(X1,X2)).
                                   __def_24(noncea_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.7. __def_104 (X1,X2) :- __type_7(X2), __def_44(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.7.1. __def_104 (X1,X2) :- __def_44(key(pub,session_current(X3,X4))), __type_7(X2), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                             This is implied by:
67.1.5.1.1.1.1.1.1.2.1.7.1.1. __def_104 (X1,X2) :- __type_7(X2), knows_current(X1), knows_current(key(sym,X2)).
                               Examine all ways of building knows_current(key(sym,X2)) in the body.
                               The 3 possibilities are:
                               knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                               knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                               knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.7.1.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __type_7(X2), knows_current(X1).
                                 Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.7.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), __type_7(X2), agent(X2), knows_current(X1).
                                   Special case of:
67.1.5.1.1.1.1.1.1.2.1.7.1.1.1.1.1. #false() :- agent(X1), __type_7(X1).: see 8.1.3.1.1.1.1.1.1.3.1.3.1.1.1.1.1.
67.1.5.1.1.1.1.1.1.2.1.7.1.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __type_7(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.7.1.1.2.1. #false() :- __def_63(X1), __type_7(X1).: see 8.1.3.1.1.1.1.1.1.3.1.3.1.1.2.1.
67.1.5.1.1.1.1.1.1.2.1.7.1.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __type_7(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.7.1.1.3.1. #false() :- __type_7(X1), __def_13(X1).
                                   By induction on X1 satisfying __type_7, must start with nonceb_old.
67.1.5.1.1.1.1.1.1.2.1.7.1.1.3.1.1. #false() :- __type_7(nonceb_old(X1,X2)), __def_13(nonceb_old(X1,X2)).
                                     __type_7(nonceb_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.8. __def_104 (X1,X2) :- __def_97(X2), __def_98(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.2.1.8.1. __def_104 (X1,X2) :- __def_97(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.8.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_97(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.8.1.1.1. __def_104 (X1,X2) :- __def_51(sym), __def_97(X2), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.8.1.1.1.1. #false() :- agent(X1), __def_97(X1).
                                   By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
67.1.5.1.1.1.1.1.1.2.1.8.1.1.1.1.1. #false() :- agent(i), __def_97(i).
                                     agent(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.8.1.1.1.1.2. #false() :- agent(alice), __def_97(alice).
                                     agent(alice) is impossible.
67.1.5.1.1.1.1.1.1.2.1.8.1.1.1.1.3. #false() :- agent(bob), __def_97(bob).
                                     agent(bob) is impossible.
67.1.5.1.1.1.1.1.1.2.1.8.1.1.1.1.4. #false() :- agent(server), __def_97(server).
                                     agent(server) is impossible.
67.1.5.1.1.1.1.1.1.2.1.8.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_97(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.8.1.2.1. #false() :- __def_63(X1), __def_97(X1).
                                 By induction on X1 satisfying __def_63, must start with i.
67.1.5.1.1.1.1.1.1.2.1.8.1.2.1.1. #false() :- __def_63(i), __def_97(i).
                                   __def_63(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.8.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_97(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.2.1.8.1.3.1. #false() :- __def_13(X1), __def_97(X1).
                                 By induction on X1 satisfying __def_13, must start with session_old.
67.1.5.1.1.1.1.1.1.2.1.8.1.3.1.1. #false() :- __def_13(session_old(X1,X2)), __def_97(session_old(X1,X2)).
                                   __def_13(session_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9. __def_104 (X1,X2) :- knows_current(X2), knows_current(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                           Equivalent to:
67.1.5.1.1.1.1.1.1.2.1.9.1. __def_104 (X1,X2) :- knows_current(X2), knows_current(X1), knows_current(key(pub,session_current(X3,X4))), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)), knows_current(passwd_current(X3,X4)).
                             This is implied by:
67.1.5.1.1.1.1.1.1.2.1.9.1.1. __def_104 (X1,X2) :- knows_current(X2), knows_current(X1), knows_current(key(sym,X2)).
                               Examine all ways of building knows_current(key(sym,X2)) in the body.
                               The 3 possibilities are:
                               knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                               knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                               knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.2.1.9.1.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), knows_current(X2), knows_current(X1).
                                 This is implied by:
67.1.5.1.1.1.1.1.1.2.1.9.1.1.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), knows_current(X2), knows_current(X1).
                                 This is implied by:
67.1.5.1.1.1.1.1.1.2.1.9.1.1.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), knows_current(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1. #false() :- knows_current(X1), __def_13(X1).
                                   By induction on X1 satisfying knows_current, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.1. #false() :- knows_current(dec(X1,X2)), __def_13(dec(X1,X2)).
                                     knows_current(dec(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.2. #false() :- knows_current(s(X1)), __def_13(s(X1)).
                                     knows_current(s(X1)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.3. #false() :- knows_current(nil), __def_13(nil).
                                     knows_current(nil) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.4. #false() :- knows_current(nonceb_old(X1,X2)), __def_13(nonceb_old(X1,X2)).
                                     knows_current(nonceb_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.5. #false() :- knows_current(i), __def_13(i).
                                     knows_current(i) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.6. #false() :- knows_current(p(X1)), __def_13(p(X1)).
                                     knows_current(p(X1)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.7. #false() :- knows_current(key(X1,X2)), __def_13(key(X1,X2)).
                                     knows_current(key(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.8. #false() :- knows_current(cons(X1,X2)), __def_13(cons(X1,X2)).
                                     knows_current(cons(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.9. #false() :- knows_current(crypt(X1,X2)), __def_13(crypt(X1,X2)).
                                     knows_current(crypt(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.10. #false() :- knows_current(noncea_old(X1,X2)), __def_13(noncea_old(X1,X2)).
                                      knows_current(noncea_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.11. #false() :- knows_current(alice), __def_13(alice).
                                      knows_current(alice) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.12. #false() :- knows_current(enc(X1,X2)), __def_13(enc(X1,X2)).
                                      knows_current(enc(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.13. #false() :- knows_current(bob), __def_13(bob).
                                      knows_current(bob) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.14. #false() :- knows_current(server), __def_13(server).
                                      knows_current(server) is impossible.
67.1.5.1.1.1.1.1.1.2.1.9.1.1.3.1.15. #false() :- knows_current(passwd_old(X1,X2)), __def_13(passwd_old(X1,X2)).
                                      knows_current(passwd_old(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.3. __def_104 (X1,X2) :- __def_76(crypt(X2,key(pub,session_current(X3,X4)))), __def_77(passwd_current(X3,X4)), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                       __def_76(crypt(X2,key(pub,session_current(X3,X4)))) must be by __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
67.1.5.1.1.1.1.1.1.3.1. __def_104 (X1,X2) :- __def_78(X2), __type_17(key(pub,session_current(X3,X4))), __def_77(passwd_current(X3,X4)), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                         Equivalent to:
67.1.5.1.1.1.1.1.1.3.1.1. __def_104 (X1,X2) :- __def_77(passwd_current(X3,X4)), __def_78(X2), __type_17(key(pub,session_current(X3,X4))), knows_current(X1), knows_current(key(sym,X2)), knows_current(noncea_current(X3,X4)).
                           This is implied by:
67.1.5.1.1.1.1.1.1.3.1.1.1. __def_104 (X1,X2) :- __def_78(X2), knows_current(X1), knows_current(key(sym,X2)).
                             Examine all ways of building knows_current(key(sym,X2)) in the body.
                             The 3 possibilities are:
                             knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                             knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                             knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
67.1.5.1.1.1.1.1.1.3.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), agent(X2), __def_78(X2), knows_current(X1).
                               Equivalent to:
67.1.5.1.1.1.1.1.1.3.1.1.1.1.1. __def_104 (X1,X2) :- __def_51(sym), __def_78(X2), agent(X2), knows_current(X1).
                                 Special case of:
67.1.5.1.1.1.1.1.1.3.1.1.1.1.1.1. #false() :- __def_78(X1), agent(X1).
                                   By induction on X1 satisfying __def_78, must start with r_current.
67.1.5.1.1.1.1.1.1.3.1.1.1.1.1.1.1. #false() :- __def_78(r_current(X1,X2)), agent(r_current(X1,X2)).
                                     __def_78(r_current(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.3.1.1.1.2. __def_104 (X1,X2) :- __def_62(sym), __def_63(X2), __def_78(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.3.1.1.1.2.1. #false() :- __def_78(X1), __def_63(X1).
                                 By induction on X1 satisfying __def_78, must start with r_current.
67.1.5.1.1.1.1.1.1.3.1.1.1.2.1.1. #false() :- __def_78(r_current(X1,X2)), __def_63(r_current(X1,X2)).
                                   __def_78(r_current(X1,X2)) is impossible.
67.1.5.1.1.1.1.1.1.3.1.1.1.3. __def_104 (X1,X2) :- __def_12(sym), __def_13(X2), __def_78(X2), knows_current(X1).
                               Special case of:
67.1.5.1.1.1.1.1.1.3.1.1.1.3.1. #false() :- __def_78(X1), __def_13(X1).
                                 By induction on X1 satisfying __def_78, must start with r_current.
67.1.5.1.1.1.1.1.1.3.1.1.1.3.1.1. #false() :- __def_78(r_current(X1,X2)), __def_13(r_current(X1,X2)).
                                   __def_78(r_current(X1,X2)) is impossible.
. lemma 68:
68. __type_3(X1) :- __def_18 (X2,X1).
     __def_18 (X2,X1) must be by __def_18(X1,X2) :- knows_old(X1), knows_old(X2).
68.1. __type_3(X1) :- knows_old(X2), knows_old(X1).
       Because the following simpler clause holds:
68.1.1. __type_3(X1) :- knows_old(X1).
         By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
68.1.1.1. __type_3(dec(X1,X2)) :- knows_old(dec(X1,X2)).
           knows_old(dec(X1,X2)) must be by knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.1.1. __type_3(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
             Infer __type_3(dec(X1,X2)) using __type_3(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.1.1.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
68.1.1.1.1.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
68.1.1.2. __type_3(s(X1)) :- knows_old(s(X1)).
           knows_old(s(X1)) must be by knows_old(s(X)) :- knows_old(X).
68.1.1.2.1. __type_3(s(X1)) :- knows_old(X1).
             Infer __type_3(s(X1)) using __type_3(s(X)) :- knows_old(X).
68.1.1.2.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
68.1.1.3. __type_3(nil) :- knows_old(nil).
           knows_old(nil) must be by knows_old(nil).
68.1.1.3.1. __type_3(nil).
             Infer __type_3(nil) using __type_3(nil).
68.1.1.4. __type_3(i) :- knows_old(i).
           knows_old(i) must be by knows_old(i).
68.1.1.4.1. __type_3(i).
             Infer __type_3(i) using __type_3(i).
68.1.1.5. __type_3(p(X1)) :- knows_old(p(X1)).
           knows_old(p(X1)) must be by knows_old(p(X)) :- knows_old(X).
68.1.1.5.1. __type_3(p(X1)) :- knows_old(X1).
             Infer __type_3(p(X1)) using __type_3(p(X)) :- knows_old(X).
68.1.1.5.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
68.1.1.6. __type_3(key(X1,X2)) :- knows_old(key(X1,X2)).
           Examine all ways of building knows_old(key(X1,X2)) in the body.
           The 2 possibilities are:
           knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
           knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
68.1.1.6.1. __type_3(key(X1,X2)) :- __def_51(X1), agent(X2).
             Infer __type_3(key(X1,X2)) using __type_3(key(X1,X2)) :- __def_51(X1), agent(X2).
68.1.1.6.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
68.1.1.6.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
68.1.1.6.2. __type_3(key(X1,X2)) :- __def_62(X1), __def_63(X2).
             Infer __type_3(key(X1,X2)) using __type_3(key(X1,X2)) :- __def_62(X1), __def_63(X2).
68.1.1.6.2.1. __def_62(X1) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.1.
68.1.1.6.2.2. __def_63(X2) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.2.
68.1.1.7. __type_3(cons(X1,X2)) :- knows_old(cons(X1,X2)).
           knows_old(cons(X1,X2)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.7.1. __type_3(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
             Infer __type_3(cons(X1,X2)) using __type_3(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.7.1.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
68.1.1.7.1.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
68.1.1.8. __type_3(crypt(X1,X2)) :- knows_old(crypt(X1,X2)).
           Examine all ways of building knows_old(crypt(X1,X2)) in the body.
           The 4 possibilities are:
           knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
           knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
           knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
           knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.8.1. __type_3(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
             Infer __type_3(crypt(X1,X2)) using __type_3(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
68.1.1.8.1.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
68.1.1.8.1.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
68.1.1.8.2. __type_3(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
             Infer __type_3(crypt(X1,X2)) using __type_3(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
68.1.1.8.2.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
68.1.1.8.2.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
68.1.1.8.3. __type_3(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
             Infer __type_3(crypt(X1,X2)) using __type_3(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
68.1.1.8.3.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
68.1.1.8.3.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
68.1.1.8.4. __type_3(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
             Infer __type_3(crypt(X1,X2)) using __type_3(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.8.4.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
68.1.1.8.4.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
68.1.1.9. __type_3(alice) :- knows_old(alice).
           knows_old(alice) must be by knows_old(alice).
68.1.1.9.1. __type_3(alice).
             Infer __type_3(alice) using __type_3(alice).
68.1.1.10. __type_3(enc(X1,X2)) :- knows_old(enc(X1,X2)).
            Examine all ways of building knows_old(enc(X1,X2)) in the body.
            The 4 possibilities are:
            knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
            knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
            knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
            knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.10.1. __type_3(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
              Infer __type_3(enc(X1,X2)) using __type_3(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
68.1.1.10.1.1. __def_15(X1) :- __def_15(X1), __def_16(X2).: see 7.10.1.1.
68.1.1.10.1.2. __def_16(X2) :- __def_15(X1), __def_16(X2).: see 7.10.1.2.
68.1.1.10.2. __type_3(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
              Infer __type_3(enc(X1,X2)) using __type_3(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
68.1.1.10.2.1. __def_19(X1) :- __def_19(X1), __def_20(X2).: see 7.10.2.1.
68.1.1.10.2.2. __def_20(X2) :- __def_19(X1), __def_20(X2).: see 7.10.2.2.
68.1.1.10.3. __type_3(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
              Infer __type_3(enc(X1,X2)) using __type_3(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
68.1.1.10.3.1. __def_10(X1) :- __def_10(X1), __def_11(X2).: see 7.10.3.1.
68.1.1.10.3.2. __def_11(X2) :- __def_10(X1), __def_11(X2).: see 7.10.3.2.
68.1.1.10.4. __type_3(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
              Infer __type_3(enc(X1,X2)) using __type_3(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
68.1.1.10.4.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
68.1.1.10.4.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
68.1.1.11. __type_3(bob) :- knows_old(bob).
            knows_old(bob) must be by knows_old(bob).
68.1.1.11.1. __type_3(bob).
              Infer __type_3(bob) using __type_3(bob).
68.1.1.12. __type_3(server) :- knows_old(server).
            knows_old(server) must be by knows_old(server).
68.1.1.12.1. __type_3(server).
              Infer __type_3(server) using __type_3(server).
. lemma 69:
69. __def_72(key(X1,X2)) :- __def_74(X2), __def_12(X1).
     Equivalent to:
69.1. __def_72(key(X1,X2)) :- __def_12(X1), __def_74(X2).
       Infer __def_72(key(X1,X2)) using __def_72(key(X1,X2)) :- __def_12(X1), __def_74(X2).
69.1.1. __def_12(X1) :- __def_12(X1), __def_74(X2).: see 15.3.1.1.1.1.1.
69.1.2. __def_74(X2) :- __def_12(X1), __def_74(X2).: see 15.3.1.1.1.1.2.
. lemma 70:
70. __def_93(nil).
     Infer __def_93(nil) using __def_93(nil).
. lemma 71:
71. __def_15(crypt(X1,X2)) :- __type_2(X2), __def_17(X1).
     Equivalent to:
71.1. __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
       Infer __def_15(crypt(X1,X2)) using __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
71.1.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
71.1.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
. lemma 72:
72. __def_17(r_old(X1,X2)) :- __def_14 (X1,X2,X3).
     Examine all ways of building __def_14 (X1,X2,X3) in the body.
     The 3 possibilities are:
     __def_14(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_10(X3).
     __def_14(X1,X2,X3) :- knows_old(X1), __def_15(X3).
     __def_14(X1,X2,X3) :- knows_old(X1), __def_19(X3).
72.1. __def_17(r_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2), __def_10(X3).
       Equivalent to:
72.1.1. __def_17(r_old(X1,X2)) :- __def_10(X3), __type_1(X1), agent(X2), agent(X1).
         Infer __def_17(r_old(X1,X2)) using __def_17(r_old(X1,X2)) :- knows_old(X1).
72.1.1.1. knows_old(X1) :- __def_10(X3), __type_1(X1), agent(X2), agent(X1).: see 32.1.1.1.
72.2. __def_17(r_old(X1,X2)) :- knows_old(X1), __def_15(X3).
       Equivalent to:
72.2.1. __def_17(r_old(X1,X2)) :- __def_15(X3), knows_old(X1).
         Infer __def_17(r_old(X1,X2)) using __def_17(r_old(X1,X2)) :- knows_old(X1).
72.2.1.1. knows_old(X1) :- __def_15(X3), knows_old(X1).: see 32.2.1.1.
72.3. __def_17(r_old(X1,X2)) :- knows_old(X1), __def_19(X3).
       Equivalent to:
72.3.1. __def_17(r_old(X1,X2)) :- __def_19(X3), knows_old(X1).
         Infer __def_17(r_old(X1,X2)) using __def_17(r_old(X1,X2)) :- knows_old(X1).
72.3.1.1. knows_old(X1) :- __def_19(X3), knows_old(X1).: see 32.3.1.1.
. lemma 73:
73. __def_108 (X1,X2) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).
     Equivalent to:
73.1. __def_108 (X1,X2) :- knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))), knows_current(crypt(X4,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).
       knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
73.1.1. __def_108 (X1,X2) :- knows_current(X1), knows_current(cons(enc(X3,passwd_current(X1,X2)),nil)), knows_current(crypt(X4,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).
         Infer __def_108 (X1,X2) using __def_108(X1,X2) :- knows_current(X1).
73.1.1.1. knows_current(X1) :- knows_current(X1), knows_current(cons(enc(X3,passwd_current(X1,X2)),nil)), knows_current(crypt(X4,key(sym,r_current(X1,X2)))), knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))).
           Because the following simpler clause holds:
73.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 74:
74. __def_73(passwd_current(X1,X2)) :- agent(X2), agent(X1).
     Infer __def_73(passwd_current(X1,X2)) using __def_73(passwd_current(X1,X2)) :- agent(X1), agent(X2).
74.1. agent(X1) :- agent(X2), agent(X1).: see 48.1.
74.2. agent(X2) :- agent(X2), agent(X1).: see 48.2.
. lemma 75:
75. __def_99(cons(X1,X2)) :- __def_101(X2), __def_100(X1).
     Equivalent to:
75.1. __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
       Infer __def_99(cons(X1,X2)) using __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
75.1.1. __def_100(X1) :- __def_100(X1), __def_101(X2).
         Because the following simpler clause holds:
75.1.1.1. __def_100(X1) :- __def_100(X1).: see 67.1.4.1.1.1.1.1.1.1.
75.1.2. __def_101(X2) :- __def_100(X1), __def_101(X2).
         Because the following simpler clause holds:
75.1.2.1. __def_101(X2) :- __def_101(X2). is a tautology.
. lemma 76:
76. __def_49 (X1,X2) :- knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))), knows_old(cons(X1,cons(X4,nil))).
     Equivalent to:
76.1. __def_49 (X1,X2) :- knows_old(cons(X1,cons(X3,nil))), knows_old(crypt(X4,key(sym,r_old(X1,X2)))), knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))).
       Infer __def_49 (X1,X2) using __def_49(X1,X2).
. lemma 77:
77. __def_81(passwd_current(X1,X2)) :- __def_79 (X1,X3).
     __def_79 (X1,X3) must be by __def_79(X1,X2) :- knows_current(X1), knows_current(X2).
77.1. __def_81(passwd_current(X1,X2)) :- knows_current(X1), knows_current(X3).
       Equivalent to:
77.1.1. __def_81(passwd_current(X1,X2)) :- knows_current(X3), knows_current(X1).
         Infer __def_81(passwd_current(X1,X2)) using __def_81(passwd_current(X1,X2)) :- knows_current(X1).
77.1.1.1. knows_current(X1) :- knows_current(X3), knows_current(X1).
           Because the following simpler clause holds:
77.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 78:
78. __def_55(prv).
     Infer __def_55(prv) using __def_55(prv).
. lemma 79:
79. __def_69(X1) :- knows_current(key(sym,X1)).
     Examine all ways of building knows_current(key(sym,X1)) in the body.
     The 3 possibilities are:
     knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
     knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
     knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
79.1. __def_69(X1) :- __def_51(sym), agent(X1).
       This is implied by:
79.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
79.2. __def_69(X1) :- __def_62(sym), __def_63(X1).
       This is implied by:
79.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
79.3. __def_69(X1) :- __def_12(sym), __def_13(X1).
       This is implied by:
79.3.1. #false() :- __def_12(sym).: see 59.4.1.1.
. lemma 80:
80. __def_77(passwd_current(X1,X2)) :- __def_75 (X1,X2,X3).
     Examine all ways of building __def_75 (X1,X2,X3) in the body.
     The 3 possibilities are:
     __def_75(X1,X2,X3) :- knows_current(X1), __def_76(X3).
     __def_75(X1,X2,X3) :- knows_current(X1), __def_80(X3).
     __def_75(X1,X2,X3) :- agent(X1), knows_current(X1), agent(X2), __def_72(X3).
80.1. __def_77(passwd_current(X1,X2)) :- knows_current(X1), __def_76(X3).
       Equivalent to:
80.1.1. __def_77(passwd_current(X1,X2)) :- __def_76(X3), knows_current(X1).
         Infer __def_77(passwd_current(X1,X2)) using __def_77(passwd_current(X1,X2)) :- knows_current(X1).
80.1.1.1. knows_current(X1) :- __def_76(X3), knows_current(X1).
           Because the following simpler clause holds:
80.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
80.2. __def_77(passwd_current(X1,X2)) :- knows_current(X1), __def_80(X3).
       Equivalent to:
80.2.1. __def_77(passwd_current(X1,X2)) :- __def_80(X3), knows_current(X1).
         Infer __def_77(passwd_current(X1,X2)) using __def_77(passwd_current(X1,X2)) :- knows_current(X1).
80.2.1.1. knows_current(X1) :- __def_80(X3), knows_current(X1).
           Because the following simpler clause holds:
80.2.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
80.3. __def_77(passwd_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2), __def_72(X3).
       Equivalent to:
80.3.1. __def_77(passwd_current(X1,X2)) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
         Infer __def_77(passwd_current(X1,X2)) using __def_77(passwd_current(X1,X2)) :- knows_current(X1).
80.3.1.1. knows_current(X1) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).: see 52.1.1.1.1.1.1.1.2.
. lemma 81:
81. __def_2(X1) :- knows_old(key(prv,X1)).
     Examine all ways of building knows_old(key(prv,X1)) in the body.
     The 2 possibilities are:
     knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
     knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
81.1. __def_2(X1) :- __def_51(prv), agent(X1).
       This is implied by:
81.1.1. #false() :- __def_51(prv).: see 29.4.1.1.
81.2. __def_2(X1) :- __def_62(prv), __def_63(X1).
       Because the following simpler clause holds:
81.2.1. __def_2(X1) :- __def_63(X1).
         By induction on X1 satisfying __def_63, must start with i.
81.2.1.1. __def_2(i) :- __def_63(i).
           __def_63(i) must be by __def_63(i).
81.2.1.1.1. __def_2(i).
             Infer __def_2(i) using __def_2(i).
. lemma 82:
82. __type_26(X1) :- testable_current(X1).
     By induction on X1 satisfying testable_current, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
82.1. __type_26(dec(X1,X2)) :- testable_current(dec(X1,X2)).
       testable_current(dec(X1,X2)) must be by testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
82.1.1. __type_26(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
         Infer __type_26(dec(X1,X2)) using __type_26(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
82.1.1.1. testable_current(X1) :- testable_current(X1), knows_current(X2).
           Because the following simpler clause holds:
82.1.1.1.1. testable_current(X1) :- testable_current(X1). is a tautology.
82.1.1.2. knows_current(X2) :- testable_current(X1), knows_current(X2).
           Because the following simpler clause holds:
82.1.1.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
82.2. __type_26(s(X1)) :- testable_current(s(X1)).
       testable_current(s(X1)) must be by testable_current(s(X)) :- testable_current(X).
82.2.1. __type_26(s(X1)) :- testable_current(X1).
         Infer __type_26(s(X1)) using __type_26(s(X)) :- testable_current(X).
82.2.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
82.3. __type_26(nil) :- testable_current(nil).
       testable_current(nil) must be by testable_current(nil).
82.3.1. __type_26(nil).
         Infer __type_26(nil) using __type_26(nil).
82.4. __type_26(nonceb_old(X1,X2)) :- testable_current(nonceb_old(X1,X2)).
       testable_current(nonceb_old(X1,X2)) must be by testable_current(nonceb_old(X1,X2)).
82.4.1. __type_26(nonceb_old(X1,X2)).
         Infer __type_26(nonceb_old(X1,X2)) using __type_26(nonceb_old(X1,X2)).
82.5. __type_26(i) :- testable_current(i).
       testable_current(i) must be by testable_current(i).
82.5.1. __type_26(i).
         Infer __type_26(i) using __type_26(i).
82.6. __type_26(r_old(X1,X2)) :- testable_current(r_old(X1,X2)).
       testable_current(r_old(X1,X2)) must be by testable_current(r_old(X1,X2)) :- knows_old(X1).
82.6.1. __type_26(r_old(X1,X2)) :- knows_old(X1).
         Infer __type_26(r_old(X1,X2)) using __type_26(r_old(X1,X2)) :- knows_old(X1).
82.6.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
82.7. __type_26(p(X1)) :- testable_current(p(X1)).
       testable_current(p(X1)) must be by testable_current(p(X)) :- testable_current(X).
82.7.1. __type_26(p(X1)) :- testable_current(X1).
         Infer __type_26(p(X1)) using __type_26(p(X)) :- testable_current(X).
82.7.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
82.8. __type_26(key(X1,X2)) :- testable_current(key(X1,X2)).
       Examine all ways of building testable_current(key(X1,X2)) in the body.
       The 4 possibilities are:
       testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
       testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
       testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
       testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
82.8.1. __type_26(key(X1,X2)) :- __def_51(X1), agent(X2).
         Infer __type_26(key(X1,X2)) using __type_26(key(X1,X2)) :- __def_51(X1), agent(X2).
82.8.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
82.8.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
82.8.2. __type_26(key(X1,X2)) :- __def_121(X1), __type_31(X2).
         Infer __type_26(key(X1,X2)) using __type_26(key(X1,X2)) :- __def_121(X1), __type_31(X2).
82.8.2.1. __def_121(X1) :- __def_121(X1), __type_31(X2).
           Because the following simpler clause holds:
82.8.2.1.1. __def_121(X1) :- __def_121(X1). is a tautology.
82.8.2.2. __type_31(X2) :- __def_121(X1), __type_31(X2).
           Because the following simpler clause holds:
82.8.2.2.1. __type_31(X2) :- __type_31(X2). is a tautology.
82.8.3. __type_26(key(X1,X2)) :- __def_118(X1), __type_29(X2).
         Infer __type_26(key(X1,X2)) using __type_26(key(X1,X2)) :- __def_118(X1), __type_29(X2).
82.8.3.1. __def_118(X1) :- __def_118(X1), __type_29(X2).
           Because the following simpler clause holds:
82.8.3.1.1. __def_118(X1) :- __def_118(X1). is a tautology.
82.8.3.2. __type_29(X2) :- __def_118(X1), __type_29(X2).
           Because the following simpler clause holds:
82.8.3.2.1. __type_29(X2) :- __type_29(X2). is a tautology.
82.8.4. __type_26(key(X1,X2)) :- __def_12(X1), __def_13(X2).
         Infer __type_26(key(X1,X2)) using __type_26(key(X1,X2)) :- __def_12(X1), __def_13(X2).
82.8.4.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
82.8.4.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
82.9. __type_26(cons(X1,X2)) :- testable_current(cons(X1,X2)).
       Examine all ways of building testable_current(cons(X1,X2)) in the body.
       The 2 possibilities are:
       testable_current(cons(X1,X2)) :- testable_current(X1).
       testable_current(cons(X1,X2)) :- testable_current(X2).
82.9.1. __type_26(cons(X1,X2)) :- testable_current(X1).
         Infer __type_26(cons(X1,X2)) using __type_26(cons(X1,X2)) :- testable_current(X1).
82.9.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
82.9.2. __type_26(cons(X1,X2)) :- testable_current(X2).
         Infer __type_26(cons(X1,X2)) using __type_26(cons(X1,X2)) :- testable_current(X2).
82.9.2.1. testable_current(X2) :- testable_current(X2). is a tautology.
82.10. __type_26(crypt(X1,X2)) :- testable_current(crypt(X1,X2)).
        Examine all ways of building testable_current(crypt(X1,X2)) in the body.
        The 11 possibilities are:
        testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
        testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
        testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
        testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
        testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
        testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
        testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
        testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
82.10.1. __type_26(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
82.10.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.1.
82.10.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.2.
82.10.2. __type_26(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
82.10.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
82.10.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
82.10.3. __type_26(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
82.10.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
82.10.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
82.10.4. __type_26(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
82.10.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
82.10.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
82.10.5. __type_26(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
82.10.5.1. __type_27(X1) :- __type_27(X1), __def_114(X2).
            Because the following simpler clause holds:
82.10.5.1.1. __type_27(X1) :- __type_27(X1). is a tautology.
82.10.5.2. __def_114(X2) :- __type_27(X1), __def_114(X2).
            Because the following simpler clause holds:
82.10.5.2.1. __def_114(X2) :- __def_114(X2). is a tautology.
82.10.6. __type_26(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
82.10.6.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
82.10.6.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
82.10.7. __type_26(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
82.10.7.1. __type_26(X1) :- __type_26(X1), __def_112(X2).
            Because the following simpler clause holds:
82.10.7.1.1. __type_26(X1) :- __type_26(X1). is a tautology.
82.10.7.2. __def_112(X2) :- __type_26(X1), __def_112(X2).
            Because the following simpler clause holds:
82.10.7.2.1. __def_112(X2) :- __def_112(X2). is a tautology.
82.10.8. __type_26(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
82.10.8.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
82.10.8.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
82.10.9. __type_26(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
          Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
82.10.9.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
82.10.9.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
82.10.10. __type_26(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
           Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
82.10.10.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
82.10.10.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
82.10.11. __type_26(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
           Infer __type_26(crypt(X1,X2)) using __type_26(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
82.10.11.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
82.10.11.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
82.11. __type_26(noncea_old(X1,X2)) :- testable_current(noncea_old(X1,X2)).
        testable_current(noncea_old(X1,X2)) must be by testable_current(noncea_old(X1,X2)).
82.11.1. __type_26(noncea_old(X1,X2)).
          Infer __type_26(noncea_old(X1,X2)) using __type_26(noncea_old(X1,X2)).
82.12. __type_26(alice) :- testable_current(alice).
        testable_current(alice) must be by testable_current(alice).
82.12.1. __type_26(alice).
          Infer __type_26(alice) using __type_26(alice).
82.13. __type_26(enc(X1,X2)) :- testable_current(enc(X1,X2)).
        Examine all ways of building testable_current(enc(X1,X2)) in the body.
        The 4 possibilities are:
        testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
        testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
        testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
        testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
82.13.1. __type_26(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
          Infer __type_26(enc(X1,X2)) using __type_26(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
82.13.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
82.13.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
82.13.2. __type_26(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
          Infer __type_26(enc(X1,X2)) using __type_26(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
82.13.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
82.13.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
82.13.3. __type_26(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
          Infer __type_26(enc(X1,X2)) using __type_26(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
82.13.3.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
82.13.3.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
82.13.4. __type_26(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
          Infer __type_26(enc(X1,X2)) using __type_26(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
82.13.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
82.13.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
82.14. __type_26(bob) :- testable_current(bob).
        testable_current(bob) must be by testable_current(bob).
82.14.1. __type_26(bob).
          Infer __type_26(bob) using __type_26(bob).
82.15. __type_26(server) :- testable_current(server).
        testable_current(server) must be by testable_current(server).
82.15.1. __type_26(server).
          Infer __type_26(server) using __type_26(server).
82.16. __type_26(passwd_old(X1,X2)) :- testable_current(passwd_old(X1,X2)).
        testable_current(passwd_old(X1,X2)) must be by testable_current(passwd_old(X1,X2)).
82.16.1. __type_26(passwd_old(X1,X2)).
          Infer __type_26(passwd_old(X1,X2)) using __type_26(passwd_old(X1,X2)).
. lemma 83:
83. __def_118(prv).
     Infer __def_118(prv) using __def_118(prv).
. lemma 84:
84. __def_56(key(X1,X2)) :- __def_6(X2), __def_57(X1).
     Equivalent to:
84.1. __def_56(key(X1,X2)) :- __def_57(X1), __def_6(X2).
       for all X, in particular X=X1, __def_57(X) is equivalent to __def_26(X) \/ __def_33(X) \/ __def_45(X) \/ __def_87(X) \/ __def_121(X) \/ __def_41(X) \/ __def_61(X) \/ __def_102(X) \/ __def_106(X) \/ __def_94(X).
84.1.1. __def_56(key(X1,X2)) :- __def_26(X1), __def_6(X2).
         There is no way to infer __def_56(key(X1,X2)), so the body must be false.
84.1.1. #false() :- __def_26(X1), __def_6(X2).
         This is implied by:
84.1.1.1. #false() :- __def_6(X2).
           Equivalent to:
84.1.1.1.1. #false() :- __def_6(X1).
             This is implied by:
84.1.1.1.1.1. #false() :- __def_6(X1).
               By induction on X1 satisfying __def_6: none.
84.1.2. __def_56(key(X1,X2)) :- __def_33(X1), __def_6(X2).
         Special case of:
84.1.2.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.3. __def_56(key(X1,X2)) :- __def_45(X1), __def_6(X2).
         Special case of:
84.1.3.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.4. __def_56(key(X1,X2)) :- __def_87(X1), __def_6(X2).
         Equivalent to:
84.1.4.1. __def_56(key(X1,X2)) :- __def_6(X2), __def_87(X1).
           Special case of:
84.1.4.1.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.5. __def_56(key(X1,X2)) :- __def_121(X1), __def_6(X2).
         Special case of:
84.1.5.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.6. __def_56(key(X1,X2)) :- __def_41(X1), __def_6(X2).
         Special case of:
84.1.6.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.7. __def_56(key(X1,X2)) :- __def_61(X1), __def_6(X2).
         Equivalent to:
84.1.7.1. __def_56(key(X1,X2)) :- __def_6(X2), __def_61(X1).
           Special case of:
84.1.7.1.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.8. __def_56(key(X1,X2)) :- __def_102(X1), __def_6(X2).
         Special case of:
84.1.8.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.9. __def_56(key(X1,X2)) :- __def_106(X1), __def_6(X2).
         Special case of:
84.1.9.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
84.1.10. __def_56(key(X1,X2)) :- __def_94(X1), __def_6(X2).
          Equivalent to:
84.1.10.1. __def_56(key(X1,X2)) :- __def_6(X2), __def_94(X1).
            Special case of:
84.1.10.1.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
. lemma 85:
85. __def_78(r_current(X1,X2)) :- __def_75 (X1,X2,X3).
     Examine all ways of building __def_75 (X1,X2,X3) in the body.
     The 3 possibilities are:
     __def_75(X1,X2,X3) :- knows_current(X1), __def_76(X3).
     __def_75(X1,X2,X3) :- knows_current(X1), __def_80(X3).
     __def_75(X1,X2,X3) :- agent(X1), knows_current(X1), agent(X2), __def_72(X3).
85.1. __def_78(r_current(X1,X2)) :- knows_current(X1), __def_76(X3).
       Equivalent to:
85.1.1. __def_78(r_current(X1,X2)) :- __def_76(X3), knows_current(X1).
         Infer __def_78(r_current(X1,X2)) using __def_78(r_current(X1,X2)) :- knows_current(X1).
85.1.1.1. knows_current(X1) :- __def_76(X3), knows_current(X1).: see 80.1.1.1.
85.2. __def_78(r_current(X1,X2)) :- knows_current(X1), __def_80(X3).
       Equivalent to:
85.2.1. __def_78(r_current(X1,X2)) :- __def_80(X3), knows_current(X1).
         Infer __def_78(r_current(X1,X2)) using __def_78(r_current(X1,X2)) :- knows_current(X1).
85.2.1.1. knows_current(X1) :- __def_80(X3), knows_current(X1).: see 80.2.1.1.
85.3. __def_78(r_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2), __def_72(X3).
       Equivalent to:
85.3.1. __def_78(r_current(X1,X2)) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).
         Infer __def_78(r_current(X1,X2)) using __def_78(r_current(X1,X2)) :- knows_current(X1).
85.3.1.1. knows_current(X1) :- __def_72(X3), agent(X2), agent(X1), knows_current(X1).: see 52.1.1.1.1.1.1.1.2.
. lemma 86:
86. __type_14(X1) :- __def_1 (X1,X2), testable_old(X2).
     __def_1 (X1,X2) must be by __def_1(X1,X2) :- agent(X1), knows_old(X2).
86.1. __type_14(X1) :- agent(X1), knows_old(X2), testable_old(X2).
       Because the following simpler clause holds:
86.1.1. __type_14(X1) :- agent(X1).
         By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
86.1.1.1. __type_14(i) :- agent(i).
           agent(i) must be by agent(i).
86.1.1.1.1. __type_14(i).
             Infer __type_14(i) using __type_14(i).
86.1.1.2. __type_14(alice) :- agent(alice).
           agent(alice) must be by agent(alice).
86.1.1.2.1. __type_14(alice).
             Infer __type_14(alice) using __type_14(alice).
86.1.1.3. __type_14(bob) :- agent(bob).
           agent(bob) must be by agent(bob).
86.1.1.3.1. __type_14(bob).
             Infer __type_14(bob) using __type_14(bob).
86.1.1.4. __type_14(server) :- agent(server).
           agent(server) must be by agent(server).
86.1.1.4.1. __type_14(server).
             Infer __type_14(server) using __type_14(server).
. lemma 87:
87. __def_5 (X1,X2) :- knows_old(crypt(X1,key(sym,X2))).
     Examine all ways of building knows_old(crypt(X1,key(sym,X2))) in the body.
     The 4 possibilities are:
     knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
     knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
     knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
     knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
87.1. __def_5 (X1,X2) :- __def_28(X1), __def_29(key(sym,X2)).
       __def_29(key(sym,X2)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
87.1.1. __def_5 (X1,X2) :- __def_33(sym), __def_34(X2), __def_28(X1).
         Equivalent to:
87.1.1.1. __def_5 (X1,X2) :- __def_28(X1), __def_33(sym), __def_34(X2).
           Infer __def_5 (X1,X2) using __def_5(X1,X2) :- __def_36(X1), __def_42(X2).
87.1.1.1.1. __def_36(X1) :- __def_28(X1), __def_33(sym), __def_34(X2).
             Because the following simpler clause holds:
87.1.1.1.1.1. __def_36(X1) :- __def_28(X1).
               By induction on X1 satisfying __def_28, must start with cons.
87.1.1.1.1.1.1. __def_36(cons(X1,X2)) :- __def_28(cons(X1,X2)).: see 5.1.1.1.1.1.1.2.1.1.
87.1.1.1.2. __def_42(X2) :- __def_28(X1), __def_33(sym), __def_34(X2).
             Because the following simpler clause holds:
87.1.1.1.2.1. __def_42(X2) :- __def_34(X2).: see 8.1.1.1.1.1.1.1.1.2.1.
87.2. __def_5 (X1,X2) :- __def_24(X1), __def_25(key(sym,X2)).
       __def_25(key(sym,X2)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
87.2.1. __def_5 (X1,X2) :- __def_26(sym), __type_4(X2), __def_24(X1).
         Equivalent to:
87.2.1.1. __def_5 (X1,X2) :- __def_24(X1), __def_26(sym), __type_4(X2).
           Infer __def_5 (X1,X2) using __def_5(X1,X2) :- __def_24(X1), __type_4(X2).
87.2.1.1.1. __def_24(X1) :- __def_24(X1), __def_26(sym), __type_4(X2).
             Because the following simpler clause holds:
87.2.1.1.1.1. __def_24(X1) :- __def_24(X1).: see 7.8.3.1.1.
87.2.1.1.2. __type_4(X2) :- __def_24(X1), __def_26(sym), __type_4(X2).
             Because the following simpler clause holds:
87.2.1.1.2.1. __type_4(X2) :- __type_4(X2).: see 10.1.2.1.
87.3. __def_5 (X1,X2) :- __type_7(X1), __def_44(key(sym,X2)).
       Equivalent to:
87.3.1. __def_5 (X1,X2) :- __def_44(key(sym,X2)), __type_7(X1).
         __def_44(key(sym,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
87.3.1.1. __def_5 (X1,X2) :- __def_45(sym), __type_8(X2), __type_7(X1).
           Equivalent to:
87.3.1.1.1. __def_5 (X1,X2) :- __def_45(sym), __type_7(X1), __type_8(X2).
             Infer __def_5 (X1,X2) using __def_5(X1,X2) :- __type_7(X1), __type_8(X2).
87.3.1.1.1.1. __type_7(X1) :- __def_45(sym), __type_7(X1), __type_8(X2).
               Because the following simpler clause holds:
87.3.1.1.1.1.1. __type_7(X1) :- __type_7(X1).: see 7.8.4.1.1.
87.3.1.1.1.2. __type_8(X2) :- __def_45(sym), __type_7(X1), __type_8(X2).
               Because the following simpler clause holds:
87.3.1.1.1.2.1. __type_8(X2) :- __type_8(X2). is a tautology.
87.4. __def_5 (X1,X2) :- knows_old(X1), knows_old(key(sym,X2)).
       Examine all ways of building knows_old(key(sym,X2)) in the body.
       The 2 possibilities are:
       knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
       knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
87.4.1. __def_5 (X1,X2) :- __def_51(sym), agent(X2), knows_old(X1).
         This is implied by:
87.4.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
87.4.2. __def_5 (X1,X2) :- __def_62(sym), __def_63(X2), knows_old(X1).
         This is implied by:
87.4.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
. lemma 88:
88. __type_5(X1) :- __def_27 (X2,X1,X3).
     Examine all ways of building __def_27 (X2,X1,X3) in the body.
     The 3 possibilities are:
     __def_27(X1,X2,X3) :- knows_old(X1), __def_36(X2).
     __def_27(X1,X2,X3) :- knows_old(X1), __type_7(X2).
     __def_27(X1,X2,X3) :- knows_old(X1), __def_24(X2).
88.1. __type_5(X1) :- knows_old(X2), __def_36(X1).
       Equivalent to:
88.1.1. __type_5(X1) :- __def_36(X1), knows_old(X2).
         Because the following simpler clause holds:
88.1.1.1. __type_5(X1) :- __def_36(X1).
           By induction on X1 satisfying __def_36, must start with cons.
88.1.1.1.1. __type_5(cons(X1,X2)) :- __def_36(cons(X1,X2)).
             __def_36(cons(X1,X2)) must be by __def_36(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
88.1.1.1.1.1. __type_5(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
               Infer __type_5(cons(X1,X2)) using __type_5(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
88.1.1.1.1.1.1. __type_5(X1) :- __type_6(X1), __def_38(X2).: see 28.1.1.1.1.1.1.
88.1.1.1.1.1.2. __def_30(X2) :- __type_6(X1), __def_38(X2).: see 28.1.1.1.1.1.2.
88.2. __type_5(X1) :- knows_old(X2), __type_7(X1).
       Equivalent to:
88.2.1. __type_5(X1) :- __type_7(X1), knows_old(X2).
         Because the following simpler clause holds:
88.2.1.1. __type_5(X1) :- __type_7(X1).
           By induction on X1 satisfying __type_7, must start with nonceb_old.
88.2.1.1.1. __type_5(nonceb_old(X1,X2)) :- __type_7(nonceb_old(X1,X2)).
             __type_7(nonceb_old(X1,X2)) must be by __type_7(nonceb_old(X1,X2)) :- knows_old(X1).
88.2.1.1.1.1. __type_5(nonceb_old(X1,X2)) :- knows_old(X1).: see 28.1.1.1.1.1.1.1.1.1.1.
88.3. __type_5(X1) :- knows_old(X2), __def_24(X1).
       Equivalent to:
88.3.1. __type_5(X1) :- __def_24(X1), knows_old(X2).
         Because the following simpler clause holds:
88.3.1.1. __type_5(X1) :- __def_24(X1).
           By induction on X1 satisfying __def_24, must start with noncea_old.
88.3.1.1.1. __type_5(noncea_old(X1,X2)) :- __def_24(noncea_old(X1,X2)).
             __def_24(noncea_old(X1,X2)) must be by __def_24(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
88.3.1.1.1.1. __type_5(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).: see 28.1.1.1.1.1.1.1.1.3.1.
. lemma 89:
89. __def_48(r_old(X1,X2)) :- __def_47 (X1,X2).
     Infer __def_48(r_old(X1,X2)) using __def_48(r_old(X1,X2)).
. lemma 90:
90. __def_86(key(X1,X2)) :- __type_19(X2), __def_87(X1).
     Equivalent to:
90.1. __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
       Infer __def_86(key(X1,X2)) using __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
90.1.1. __def_87(X1) :- __def_87(X1), __type_19(X2).
         Because the following simpler clause holds:
90.1.1.1. __def_87(X1) :- __def_87(X1). is a tautology.
90.1.2. __type_19(X2) :- __def_87(X1), __type_19(X2).
         Because the following simpler clause holds:
90.1.2.1. __type_19(X2) :- __type_19(X2). is a tautology.
. lemma 91:
91. __def_8(enc(X1,X2)) :- __def_11(X2), __def_10(X1).
     Equivalent to:
91.1. __def_8(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
       Infer __def_8(enc(X1,X2)) using __def_8(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
91.1.1. __def_10(X1) :- __def_10(X1), __def_11(X2).: see 7.10.3.1.
91.1.2. __def_11(X2) :- __def_10(X1), __def_11(X2).: see 7.10.3.2.
. lemma 92:
92. __def_94(sym).
     Infer __def_94(sym) using __def_94(sym).
. lemma 93:
93. __def_113(pub).
     Infer __def_113(pub) using __def_113(pub).
. lemma 94:
94. __type_2(X1) :- __def_14 (X2,X3,X1).
     Examine all ways of building __def_14 (X2,X3,X1) in the body.
     The 3 possibilities are:
     __def_14(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_10(X3).
     __def_14(X1,X2,X3) :- knows_old(X1), __def_15(X3).
     __def_14(X1,X2,X3) :- knows_old(X1), __def_19(X3).
94.1. __type_2(X1) :- agent(X2), __type_1(X2), agent(X3), __def_10(X1).
       Equivalent to:
94.1.1. __type_2(X1) :- __def_10(X1), __type_1(X2), agent(X3), agent(X2).
         Because the following simpler clause holds:
94.1.1.1. __type_2(X1) :- __def_10(X1).
           By induction on X1 satisfying __def_10, must start with key.
94.1.1.1.1. __type_2(key(X1,X2)) :- __def_10(key(X1,X2)).
             __def_10(key(X1,X2)) must be by __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
94.1.1.1.1.1. __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
               Infer __type_2(key(X1,X2)) using __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
94.1.1.1.1.1.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
94.1.1.1.1.1.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
94.2. __type_2(X1) :- knows_old(X2), __def_15(X1).
       Equivalent to:
94.2.1. __type_2(X1) :- __def_15(X1), knows_old(X2).
         Because the following simpler clause holds:
94.2.1.1. __type_2(X1) :- __def_15(X1).
           By induction on X1 satisfying __def_15, must start with crypt.
94.2.1.1.1. __type_2(crypt(X1,X2)) :- __def_15(crypt(X1,X2)).
             __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
94.2.1.1.1.1. __type_2(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
               Infer __type_2(crypt(X1,X2)) using __type_2(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
94.2.1.1.1.1.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
94.2.1.1.1.1.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
94.3. __type_2(X1) :- knows_old(X2), __def_19(X1).
       Equivalent to:
94.3.1. __type_2(X1) :- __def_19(X1), knows_old(X2).
         Because the following simpler clause holds:
94.3.1.1. __type_2(X1) :- __def_19(X1).
           By induction on X1 satisfying __def_19, must start with crypt.
94.3.1.1.1. __type_2(crypt(X1,X2)) :- __def_19(crypt(X1,X2)).
             __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
94.3.1.1.1.1. __type_2(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
               Infer __type_2(crypt(X1,X2)) using __type_2(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
94.3.1.1.1.1.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
94.3.1.1.1.1.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
. lemma 95:
95. __type_10(X1) :- __def_49 (X1,X2).
     Obvious from the universal clause __type_10(X) in the model.
. lemma 96:
96. __def_45(sym).
     Infer __def_45(sym) using __def_45(sym).
. lemma 97:
97. __def_80(crypt(X1,X2)) :- __def_83(X2), __def_82(X1).
     Equivalent to:
97.1. __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
       Infer __def_80(crypt(X1,X2)) using __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
97.1.1. __def_82(X1) :- __def_82(X1), __def_83(X2).: see 15.2.1.1.1.1.1.
97.1.2. __def_83(X2) :- __def_82(X1), __def_83(X2).: see 15.2.1.1.1.1.2.
. lemma 98:
98. __def_68 (X1,X2) :- knows_current(crypt(X1,key(sym,X2))).
     Examine all ways of building knows_current(crypt(X1,key(sym,X2))) in the body.
     The 8 possibilities are:
     knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
     knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
     knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
     knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
     knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
     knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
     knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
     knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
98.1. __def_68 (X1,X2) :- __type_22(X1), __def_105(key(sym,X2)).
       Equivalent to:
98.1.1. __def_68 (X1,X2) :- __def_105(key(sym,X2)), __type_22(X1).
         __def_105(key(sym,X2)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
98.1.1.1. __def_68 (X1,X2) :- __def_106(sym), __type_23(X2), __type_22(X1).
           Equivalent to:
98.1.1.1.1. __def_68 (X1,X2) :- __def_106(sym), __type_22(X1), __type_23(X2).
             Infer __def_68 (X1,X2) using __def_68(X1,X2) :- __type_22(X1), __type_23(X2).
98.1.1.1.1.1. __type_22(X1) :- __def_106(sym), __type_22(X1), __type_23(X2).
               Because the following simpler clause holds:
98.1.1.1.1.1.1. __type_22(X1) :- __type_22(X1).: see 44.1.1.9.1.1.1.
98.1.1.1.1.2. __type_23(X2) :- __def_106(sym), __type_22(X1), __type_23(X2).
               Because the following simpler clause holds:
98.1.1.1.1.2.1. __type_23(X2) :- __type_23(X2). is a tautology.
98.2. __def_68 (X1,X2) :- __def_28(X1), __def_29(key(sym,X2)).
       __def_29(key(sym,X2)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
98.2.1. __def_68 (X1,X2) :- __def_33(sym), __def_34(X2), __def_28(X1).
         Equivalent to:
98.2.1.1. __def_68 (X1,X2) :- __def_28(X1), __def_33(sym), __def_34(X2).
           Infer __def_68 (X1,X2) using __def_68(X1,X2) :- __def_36(X1), __def_42(X2).
98.2.1.1.1. __def_36(X1) :- __def_28(X1), __def_33(sym), __def_34(X2).: see 87.1.1.1.1.
98.2.1.1.2. __def_42(X2) :- __def_28(X1), __def_33(sym), __def_34(X2).: see 87.1.1.1.2.
98.3. __def_68 (X1,X2) :- __def_85(X1), __def_86(key(sym,X2)).
       __def_86(key(sym,X2)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
98.3.1. __def_68 (X1,X2) :- __def_87(sym), __type_19(X2), __def_85(X1).
         Equivalent to:
98.3.1.1. __def_68 (X1,X2) :- __def_85(X1), __def_87(sym), __type_19(X2).
           Infer __def_68 (X1,X2) using __def_68(X1,X2) :- __def_85(X1), __type_19(X2).
98.3.1.1.1. __def_85(X1) :- __def_85(X1), __def_87(sym), __type_19(X2).
             Because the following simpler clause holds:
98.3.1.1.1.1. __def_85(X1) :- __def_85(X1).: see 44.1.1.9.3.1.1.
98.3.1.1.2. __type_19(X2) :- __def_85(X1), __def_87(sym), __type_19(X2).
             Because the following simpler clause holds:
98.3.1.1.2.1. __type_19(X2) :- __type_19(X2).: see 90.1.2.1.
98.4. __def_68 (X1,X2) :- __def_17(X1), __type_2(key(sym,X2)).
       __type_2(key(sym,X2)) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
98.4.1. __def_68 (X1,X2) :- __def_12(sym), __def_13(X2), __def_17(X1).
         This is implied by:
98.4.1.1. #false() :- __def_12(sym).: see 59.4.1.1.
98.5. __def_68 (X1,X2) :- __def_24(X1), __def_25(key(sym,X2)).
       __def_25(key(sym,X2)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
98.5.1. __def_68 (X1,X2) :- __def_26(sym), __type_4(X2), __def_24(X1).
         Equivalent to:
98.5.1.1. __def_68 (X1,X2) :- __def_24(X1), __def_26(sym), __type_4(X2).
           Infer __def_68 (X1,X2) using __def_68(X1,X2) :- __def_24(X1), __type_4(X2).
98.5.1.1.1. __def_24(X1) :- __def_24(X1), __def_26(sym), __type_4(X2).: see 87.2.1.1.1.
98.5.1.1.2. __type_4(X2) :- __def_24(X1), __def_26(sym), __type_4(X2).: see 87.2.1.1.2.
98.6. __def_68 (X1,X2) :- __type_7(X1), __def_44(key(sym,X2)).
       Equivalent to:
98.6.1. __def_68 (X1,X2) :- __def_44(key(sym,X2)), __type_7(X1).
         __def_44(key(sym,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
98.6.1.1. __def_68 (X1,X2) :- __def_45(sym), __type_8(X2), __type_7(X1).
           Equivalent to:
98.6.1.1.1. __def_68 (X1,X2) :- __def_45(sym), __type_7(X1), __type_8(X2).
             Infer __def_68 (X1,X2) using __def_68(X1,X2) :- __type_7(X1), __type_8(X2).
98.6.1.1.1.1. __type_7(X1) :- __def_45(sym), __type_7(X1), __type_8(X2).: see 87.3.1.1.1.1.
98.6.1.1.1.2. __type_8(X2) :- __def_45(sym), __type_7(X1), __type_8(X2).: see 87.3.1.1.1.2.
98.7. __def_68 (X1,X2) :- __def_97(X1), __def_98(key(sym,X2)).
       __def_98(key(sym,X2)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
98.7.1. __def_68 (X1,X2) :- __def_102(sym), __def_103(X2), __def_97(X1).
         Infer __def_68 (X1,X2) using __def_68(X1,X2) :- __def_89(X1), __def_95(X2).
98.7.1.1. __def_89(X1) :- __def_102(sym), __def_103(X2), __def_97(X1).
           Because the following simpler clause holds:
98.7.1.1.1. __def_89(X1) :- __def_97(X1).
             By induction on X1 satisfying __def_97, must start with cons.
98.7.1.1.1.1. __def_89(cons(X1,X2)) :- __def_97(cons(X1,X2)).
               __def_97(cons(X1,X2)) must be by __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
98.7.1.1.1.1.1. __def_89(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
                 Infer __def_89(cons(X1,X2)) using __def_89(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
98.7.1.1.1.1.1.1. __type_20(X1) :- __type_21(X1), __def_99(X2).
                   Because the following simpler clause holds:
98.7.1.1.1.1.1.1.1. __type_20(X1) :- __type_21(X1).
                     Without any induction hypothesis:
98.7.1.1.1.1.1.1.1.1. __type_20(X1) :- __type_21(X1).
                       By induction on X1 satisfying __type_21, X1 must start with cons, noncea_current or nonceb_current.
98.7.1.1.1.1.1.1.1.1.1. __type_20(cons(X1,X2)) :- __type_21(cons(X1,X2)).
                         __type_21(cons(X1,X2)) must be by __type_21(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
98.7.1.1.1.1.1.1.1.1.1.1. __type_20(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
                           Infer __type_20(cons(X1,X2)) using __type_20(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
98.7.1.1.1.1.1.1.1.1.1.1.1. __type_20(X1) :- __type_20(X1), __def_91(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.1.1.1.1.1.1.1. __type_20(X1) :- __type_20(X1).: see 36.1.1.
98.7.1.1.1.1.1.1.1.1.1.1.2. __def_91(X2) :- __type_20(X1), __def_91(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.1.1.1.1.1.2.1. __def_91(X2) :- __def_91(X2).: see 36.2.1.
98.7.1.1.1.1.1.1.1.1.2. __type_20(noncea_current(X1,X2)) :- __type_21(noncea_current(X1,X2)).
                         __type_21(noncea_current(X1,X2)) must be by __type_21(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
98.7.1.1.1.1.1.1.1.1.2.1. __type_20(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
                           Infer __type_20(noncea_current(X1,X2)) using __type_20(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
98.7.1.1.1.1.1.1.1.1.2.1.1. agent(X1) :- agent(X1), knows_current(X1), agent(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.1.1.1.2.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
98.7.1.1.1.1.1.1.1.1.2.1.2. knows_current(X1) :- agent(X1), knows_current(X1), agent(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.1.1.1.2.1.2.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
98.7.1.1.1.1.1.1.1.1.2.1.3. agent(X2) :- agent(X1), knows_current(X1), agent(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.1.1.1.2.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
98.7.1.1.1.1.1.1.1.1.3. __type_20(nonceb_current(X1,X2)) :- __type_21(nonceb_current(X1,X2)).
                         __type_21(nonceb_current(X1,X2)) must be by __type_21(nonceb_current(X1,X2)) :- knows_current(X1).
98.7.1.1.1.1.1.1.1.1.3.1. __type_20(nonceb_current(X1,X2)) :- knows_current(X1).
                           Infer __type_20(nonceb_current(X1,X2)) using __type_20(nonceb_current(X1,X2)) :- knows_current(X1).
98.7.1.1.1.1.1.1.1.1.3.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
98.7.1.1.1.1.1.2. __def_91(X2) :- __type_21(X1), __def_99(X2).
                   Because the following simpler clause holds:
98.7.1.1.1.1.1.2.1. __def_91(X2) :- __def_99(X2).
                     Without any induction hypothesis:
98.7.1.1.1.1.1.2.1.1. __def_91(X1) :- __def_99(X1).
                       By induction on X2 satisfying __def_99, must start with cons.
98.7.1.1.1.1.1.2.1.1.1. __def_91(cons(X1,X2)) :- __def_99(cons(X1,X2)).
                         __def_99(cons(X1,X2)) must be by __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
98.7.1.1.1.1.1.2.1.1.1.1. __def_91(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
                           Infer __def_91(cons(X1,X2)) using __def_91(cons(X1,X2)) :- __def_92(X1), __def_93(X2).
98.7.1.1.1.1.1.2.1.1.1.1.1. __def_92(X1) :- __def_100(X1), __def_101(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.2.1.1.1.1.1.1. __def_92(X1) :- __def_100(X1).
                               Without any induction hypothesis:
98.7.1.1.1.1.1.2.1.1.1.1.1.1.1. __def_92(X1) :- __def_100(X1).: see 41.4.1.1.1.1.1.1.1.1.1.1.
98.7.1.1.1.1.1.2.1.1.1.1.2. __def_93(X2) :- __def_100(X1), __def_101(X2).
                             Because the following simpler clause holds:
98.7.1.1.1.1.1.2.1.1.1.1.2.1. __def_93(X2) :- __def_101(X2).
                               Without any induction hypothesis:
98.7.1.1.1.1.1.2.1.1.1.1.2.1.1. __def_93(X1) :- __def_101(X1).
                                 By induction on X2 satisfying __def_101, must start with nil.
98.7.1.1.1.1.1.2.1.1.1.1.2.1.1.1. __def_93(nil) :- __def_101(nil).
                                   __def_101(nil) must be by __def_101(nil).
98.7.1.1.1.1.1.2.1.1.1.1.2.1.1.1.1. __def_93(nil).: see 70.
98.7.1.2. __def_95(X2) :- __def_102(sym), __def_103(X2), __def_97(X1).
           Because the following simpler clause holds:
98.7.1.2.1. __def_95(X1) :- __def_103(X1).
             By induction on X2 satisfying __def_103, must start with r_current.
98.7.1.2.1.1. __def_95(r_current(X1,X2)) :- __def_103(r_current(X1,X2)).: see 41.4.1.1.1.1.1.1.1.1.5.1.1.
98.8. __def_68 (X1,X2) :- knows_current(X1), knows_current(key(sym,X2)).
       Examine all ways of building knows_current(key(sym,X2)) in the body.
       The 3 possibilities are:
       knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
       knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
       knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
98.8.1. __def_68 (X1,X2) :- __def_51(sym), agent(X2), knows_current(X1).
         This is implied by:
98.8.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
98.8.2. __def_68 (X1,X2) :- __def_62(sym), __def_63(X2), knows_current(X1).
         This is implied by:
98.8.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
98.8.3. __def_68 (X1,X2) :- __def_12(sym), __def_13(X2), knows_current(X1).
         This is implied by:
98.8.3.1. #false() :- __def_12(sym).: see 59.4.1.1.
. lemma 99:
99. __type_21(X1) :- __def_96 (X2,X1,X3).
     Examine all ways of building __def_96 (X2,X1,X3) in the body.
     The 3 possibilities are:
     __def_96(X1,X2,X3) :- knows_current(X1), __def_85(X2).
     __def_96(X1,X2,X3) :- knows_current(X1), __def_97(X2).
     __def_96(X1,X2,X3) :- knows_current(X1), __type_22(X2).
99.1. __type_21(X1) :- knows_current(X2), __def_85(X1).
       Equivalent to:
99.1.1. __type_21(X1) :- __def_85(X1), knows_current(X2).
         Because the following simpler clause holds:
99.1.1.1. __type_21(X1) :- __def_85(X1).
           By induction on X1 satisfying __def_85, must start with noncea_current.
99.1.1.1.1. __type_21(noncea_current(X1,X2)) :- __def_85(noncea_current(X1,X2)).
             __def_85(noncea_current(X1,X2)) must be by __def_85(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
99.1.1.1.1.1. __type_21(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
               Infer __type_21(noncea_current(X1,X2)) using __type_21(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
99.1.1.1.1.1.1. agent(X1) :- agent(X1), knows_current(X1), agent(X2).: see 98.7.1.1.1.1.1.1.1.1.2.1.1.
99.1.1.1.1.1.2. knows_current(X1) :- agent(X1), knows_current(X1), agent(X2).: see 98.7.1.1.1.1.1.1.1.1.2.1.2.
99.1.1.1.1.1.3. agent(X2) :- agent(X1), knows_current(X1), agent(X2).: see 98.7.1.1.1.1.1.1.1.1.2.1.3.
99.2. __type_21(X1) :- knows_current(X2), __def_97(X1).
       Equivalent to:
99.2.1. __type_21(X1) :- __def_97(X1), knows_current(X2).
         Because the following simpler clause holds:
99.2.1.1. __type_21(X1) :- __def_97(X1).
           By induction on X1 satisfying __def_97, must start with cons.
99.2.1.1.1. __type_21(cons(X1,X2)) :- __def_97(cons(X1,X2)).
             __def_97(cons(X1,X2)) must be by __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
99.2.1.1.1.1. __type_21(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
               Infer __type_21(cons(X1,X2)) using __type_21(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
99.2.1.1.1.1.1. __type_20(X1) :- __type_21(X1), __def_99(X2).: see 98.7.1.1.1.1.1.1.
99.2.1.1.1.1.2. __def_91(X2) :- __type_21(X1), __def_99(X2).: see 98.7.1.1.1.1.1.2.
99.3. __type_21(X1) :- knows_current(X2), __type_22(X1).
       Equivalent to:
99.3.1. __type_21(X1) :- __type_22(X1), knows_current(X2).
         Because the following simpler clause holds:
99.3.1.1. __type_21(X1) :- __type_22(X1).
           By induction on X1 satisfying __type_22, must start with nonceb_current.
99.3.1.1.1. __type_21(nonceb_current(X1,X2)) :- __type_22(nonceb_current(X1,X2)).
             __type_22(nonceb_current(X1,X2)) must be by __type_22(nonceb_current(X1,X2)) :- knows_current(X1).
99.3.1.1.1.1. __type_21(nonceb_current(X1,X2)) :- knows_current(X1).
               Infer __type_21(nonceb_current(X1,X2)) using __type_21(nonceb_current(X1,X2)) :- knows_current(X1).
99.3.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 100:
100. __def_50(r_old(X1,X2)) :- __def_49 (X1,X2).
      Infer __def_50(r_old(X1,X2)) using __def_50(r_old(X1,X2)).
. lemma 101:
101. __type_30(X1) :- __def_66 (X1,X2), testable_current(X2).
      __def_66 (X1,X2) must be by __def_66(X1,X2) :- __def_63(X1), knows_current(X2).
101.1. __type_30(X1) :- __def_63(X1), knows_current(X2), testable_current(X2).
        Because the following simpler clause holds:
101.1.1. __type_30(X1) :- __def_63(X1).
          By induction on X1 satisfying __def_63, must start with i.
101.1.1.1. __type_30(i) :- __def_63(i).
            __def_63(i) must be by __def_63(i).
101.1.1.1.1. __type_30(i).
              Infer __type_30(i) using __type_30(i).
. lemma 102:
102. __type_27(X1) :- testable_current(X1).
      By induction on X1 satisfying testable_current, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
102.1. __type_27(dec(X1,X2)) :- testable_current(dec(X1,X2)).
        testable_current(dec(X1,X2)) must be by testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
102.1.1. __type_27(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
          Infer __type_27(dec(X1,X2)) using __type_27(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
102.1.1.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
102.1.1.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
102.2. __type_27(s(X1)) :- testable_current(s(X1)).
        testable_current(s(X1)) must be by testable_current(s(X)) :- testable_current(X).
102.2.1. __type_27(s(X1)) :- testable_current(X1).
          Infer __type_27(s(X1)) using __type_27(s(X)) :- testable_current(X).
102.2.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
102.3. __type_27(nil) :- testable_current(nil).
        testable_current(nil) must be by testable_current(nil).
102.3.1. __type_27(nil).
          Infer __type_27(nil) using __type_27(nil).
102.4. __type_27(nonceb_old(X1,X2)) :- testable_current(nonceb_old(X1,X2)).
        testable_current(nonceb_old(X1,X2)) must be by testable_current(nonceb_old(X1,X2)).
102.4.1. __type_27(nonceb_old(X1,X2)).
          Infer __type_27(nonceb_old(X1,X2)) using __type_27(nonceb_old(X1,X2)).
102.5. __type_27(i) :- testable_current(i).
        testable_current(i) must be by testable_current(i).
102.5.1. __type_27(i).
          Infer __type_27(i) using __type_27(i).
102.6. __type_27(r_old(X1,X2)) :- testable_current(r_old(X1,X2)).
        testable_current(r_old(X1,X2)) must be by testable_current(r_old(X1,X2)) :- knows_old(X1).
102.6.1. __type_27(r_old(X1,X2)) :- knows_old(X1).
          Infer __type_27(r_old(X1,X2)) using __type_27(r_old(X1,X2)) :- knows_old(X1).
102.6.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
102.7. __type_27(p(X1)) :- testable_current(p(X1)).
        testable_current(p(X1)) must be by testable_current(p(X)) :- testable_current(X).
102.7.1. __type_27(p(X1)) :- testable_current(X1).
          Infer __type_27(p(X1)) using __type_27(p(X)) :- testable_current(X).
102.7.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
102.8. __type_27(key(X1,X2)) :- testable_current(key(X1,X2)).
        Examine all ways of building testable_current(key(X1,X2)) in the body.
        The 4 possibilities are:
        testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
        testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
        testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
        testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
102.8.1. __type_27(key(X1,X2)) :- __def_51(X1), agent(X2).
          Infer __type_27(key(X1,X2)) using __type_27(key(X1,X2)) :- __def_51(X1), agent(X2).
102.8.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
102.8.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
102.8.2. __type_27(key(X1,X2)) :- __def_121(X1), __type_31(X2).
          Infer __type_27(key(X1,X2)) using __type_27(key(X1,X2)) :- __def_121(X1), __type_31(X2).
102.8.2.1. __def_121(X1) :- __def_121(X1), __type_31(X2).: see 82.8.2.1.
102.8.2.2. __type_31(X2) :- __def_121(X1), __type_31(X2).: see 82.8.2.2.
102.8.3. __type_27(key(X1,X2)) :- __def_118(X1), __type_29(X2).
          Infer __type_27(key(X1,X2)) using __type_27(key(X1,X2)) :- __def_118(X1), __type_29(X2).
102.8.3.1. __def_118(X1) :- __def_118(X1), __type_29(X2).: see 82.8.3.1.
102.8.3.2. __type_29(X2) :- __def_118(X1), __type_29(X2).: see 82.8.3.2.
102.8.4. __type_27(key(X1,X2)) :- __def_12(X1), __def_13(X2).
          Infer __type_27(key(X1,X2)) using __type_27(key(X1,X2)) :- __def_12(X1), __def_13(X2).
102.8.4.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
102.8.4.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
102.9. __type_27(cons(X1,X2)) :- testable_current(cons(X1,X2)).
        Examine all ways of building testable_current(cons(X1,X2)) in the body.
        The 2 possibilities are:
        testable_current(cons(X1,X2)) :- testable_current(X1).
        testable_current(cons(X1,X2)) :- testable_current(X2).
102.9.1. __type_27(cons(X1,X2)) :- testable_current(X1).
          Infer __type_27(cons(X1,X2)) using __type_27(cons(X1,X2)) :- testable_current(X1).
102.9.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
102.9.2. __type_27(cons(X1,X2)) :- testable_current(X2).
          Infer __type_27(cons(X1,X2)) using __type_27(cons(X1,X2)) :- testable_current(X2).
102.9.2.1. testable_current(X2) :- testable_current(X2).: see 82.9.2.1.
102.10. __type_27(crypt(X1,X2)) :- testable_current(crypt(X1,X2)).
         Examine all ways of building testable_current(crypt(X1,X2)) in the body.
         The 11 possibilities are:
         testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
         testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
         testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
         testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
         testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
         testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
         testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
         testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
         testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
         testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
         testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
102.10.1. __type_27(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
102.10.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.1.
102.10.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.2.
102.10.2. __type_27(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
102.10.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
102.10.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
102.10.3. __type_27(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
102.10.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
102.10.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
102.10.4. __type_27(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
102.10.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
102.10.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
102.10.5. __type_27(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
102.10.5.1. __type_27(X1) :- __type_27(X1), __def_114(X2).: see 82.10.5.1.
102.10.5.2. __def_114(X2) :- __type_27(X1), __def_114(X2).: see 82.10.5.2.
102.10.6. __type_27(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
102.10.6.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
102.10.6.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
102.10.7. __type_27(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
102.10.7.1. __type_26(X1) :- __type_26(X1), __def_112(X2).: see 82.10.7.1.
102.10.7.2. __def_112(X2) :- __type_26(X1), __def_112(X2).: see 82.10.7.2.
102.10.8. __type_27(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
102.10.8.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
102.10.8.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
102.10.9. __type_27(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
           Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
102.10.9.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
102.10.9.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
102.10.10. __type_27(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
            Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
102.10.10.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
102.10.10.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
102.10.11. __type_27(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_27(crypt(X1,X2)) using __type_27(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
102.10.11.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
102.10.11.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
102.11. __type_27(noncea_old(X1,X2)) :- testable_current(noncea_old(X1,X2)).
         testable_current(noncea_old(X1,X2)) must be by testable_current(noncea_old(X1,X2)).
102.11.1. __type_27(noncea_old(X1,X2)).
           Infer __type_27(noncea_old(X1,X2)) using __type_27(noncea_old(X1,X2)).
102.12. __type_27(alice) :- testable_current(alice).
         testable_current(alice) must be by testable_current(alice).
102.12.1. __type_27(alice).
           Infer __type_27(alice) using __type_27(alice).
102.13. __type_27(enc(X1,X2)) :- testable_current(enc(X1,X2)).
         Examine all ways of building testable_current(enc(X1,X2)) in the body.
         The 4 possibilities are:
         testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
         testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
         testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
         testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
102.13.1. __type_27(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
           Infer __type_27(enc(X1,X2)) using __type_27(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
102.13.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
102.13.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
102.13.2. __type_27(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
           Infer __type_27(enc(X1,X2)) using __type_27(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
102.13.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
102.13.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
102.13.3. __type_27(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
           Infer __type_27(enc(X1,X2)) using __type_27(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
102.13.3.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
102.13.3.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
102.13.4. __type_27(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
           Infer __type_27(enc(X1,X2)) using __type_27(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
102.13.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
102.13.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
102.14. __type_27(bob) :- testable_current(bob).
         testable_current(bob) must be by testable_current(bob).
102.14.1. __type_27(bob).
           Infer __type_27(bob) using __type_27(bob).
102.15. __type_27(server) :- testable_current(server).
         testable_current(server) must be by testable_current(server).
102.15.1. __type_27(server).
           Infer __type_27(server) using __type_27(server).
102.16. __type_27(passwd_old(X1,X2)) :- testable_current(passwd_old(X1,X2)).
         testable_current(passwd_old(X1,X2)) must be by testable_current(passwd_old(X1,X2)).
102.16.1. __type_27(passwd_old(X1,X2)).
           Infer __type_27(passwd_old(X1,X2)) using __type_27(passwd_old(X1,X2)).
. lemma 103:
103. __def_52(key(X1,X2)) :- __def_2(X2), __def_53(X1).
      Infer __def_52(key(X1,X2)) using __def_52(key(X1,X2)) :- __def_53(X1), __def_2(X2).
103.1. __def_53(X1) :- __def_2(X2), __def_53(X1).
        Because the following simpler clause holds:
103.1.1. __def_53(X1) :- __def_53(X1). is a tautology.
103.2. __def_2(X2) :- __def_2(X2), __def_53(X1).
        Because the following simpler clause holds:
103.2.1. __def_2(X2) :- __def_2(X2). is a tautology.
. lemma 104:
104. __def_29(key(X1,X2)) :- __def_34(X2), __def_33(X1).
      Equivalent to:
104.1. __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
        Infer __def_29(key(X1,X2)) using __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
104.1.1. __def_33(X1) :- __def_33(X1), __def_34(X2).
          Because the following simpler clause holds:
104.1.1.1. __def_33(X1) :- __def_33(X1). is a tautology.
104.1.2. __def_34(X2) :- __def_33(X1), __def_34(X2).
          Because the following simpler clause holds:
104.1.2.1. __def_34(X2) :- __def_34(X2). is a tautology.
. lemma 105:
105. __def_115(prv).
      Infer __def_115(prv) using __def_115(prv).
. lemma 106:
106. __def_36(cons(X1,X2)) :- __def_38(X2), __type_6(X1).
      Infer __def_36(cons(X1,X2)) using __def_36(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
106.1. __type_6(X1) :- __def_38(X2), __type_6(X1).
        Because the following simpler clause holds:
106.1.1. __type_6(X1) :- __type_6(X1). is a tautology.
106.2. __def_38(X2) :- __def_38(X2), __type_6(X1).
        Because the following simpler clause holds:
106.2.1. __def_38(X2) :- __def_38(X2). is a tautology.
. lemma 107:
107. __type_16(X1) :- __def_60 (X1,X2), testable_old(X2).
      Examine all ways of building __def_60 (X1,X2) in the body.
      The 3 possibilities are:
      __def_60(X1,X2) :- __def_42(X1), __def_36(X2).
      __def_60(X1,X2) :- __type_4(X1), __def_24(X2).
      __def_60(X1,X2) :- __type_8(X1), __type_7(X2).
107.1. __type_16(X1) :- __def_42(X1), __def_36(X2), testable_old(X2).
        Equivalent to:
107.1.1. __type_16(X1) :- __def_36(X2), __def_42(X1), testable_old(X2).
          Because the following simpler clause holds:
107.1.1.1. __type_16(X1) :- __def_42(X1).
            By induction on X1 satisfying __def_42, must start with r_old.
107.1.1.1.1. __type_16(r_old(X1,X2)) :- __def_42(r_old(X1,X2)).
              __def_42(r_old(X1,X2)) must be by __def_42(r_old(X1,X2)) :- knows_old(X1).
107.1.1.1.1.1. __type_16(r_old(X1,X2)) :- knows_old(X1).
                Infer __type_16(r_old(X1,X2)) using __type_16(r_old(X1,X2)) :- knows_old(X1).
107.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
107.2. __type_16(X1) :- __type_4(X1), __def_24(X2), testable_old(X2).
        Equivalent to:
107.2.1. __type_16(X1) :- __def_24(X2), __type_4(X1), testable_old(X2).
          Because the following simpler clause holds:
107.2.1.1. __type_16(X1) :- __type_4(X1).
            By induction on X1 satisfying __type_4, must start with r_old.
107.2.1.1.1. __type_16(r_old(X1,X2)) :- __type_4(r_old(X1,X2)).
              __type_4(r_old(X1,X2)) must be by __type_4(r_old(X1,X2)) :- knows_old(X1).
107.2.1.1.1.1. __type_16(r_old(X1,X2)) :- knows_old(X1).: see 107.1.1.1.1.1.
107.3. __type_16(X1) :- __type_8(X1), __type_7(X2), testable_old(X2).
        Equivalent to:
107.3.1. __type_16(X1) :- __type_7(X2), __type_8(X1), testable_old(X2).
          Because the following simpler clause holds:
107.3.1.1. __type_16(X1) :- __type_8(X1).
            By induction on X1 satisfying __type_8, must start with r_old.
107.3.1.1.1. __type_16(r_old(X1,X2)) :- __type_8(r_old(X1,X2)).
              __type_8(r_old(X1,X2)) must be by __type_8(r_old(X1,X2)) :- knows_old(X1).
107.3.1.1.1.1. __type_16(r_old(X1,X2)) :- knows_old(X1).: see 107.1.1.1.1.1.
. lemma 108:
108. __def_53(pub).
      Infer __def_53(pub) using __def_53(pub).
. lemma 109:
109. __def_67(X1) :- knows_current(key(pub,X1)).
      Examine all ways of building knows_current(key(pub,X1)) in the body.
      The 3 possibilities are:
      knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
      knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
      knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
109.1. __def_67(X1) :- __def_51(pub), agent(X1).
        Because the following simpler clause holds:
109.1.1. __def_67(X1) :- agent(X1).
          By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
109.1.1.1. __def_67(i) :- agent(i).
            agent(i) must be by agent(i).
109.1.1.1.1. __def_67(i).
              Infer __def_67(i) using __def_67(i).
109.1.1.2. __def_67(alice) :- agent(alice).
            agent(alice) must be by agent(alice).
109.1.1.2.1. __def_67(alice).
              Infer __def_67(alice) using __def_67(alice).
109.1.1.3. __def_67(bob) :- agent(bob).
            agent(bob) must be by agent(bob).
109.1.1.3.1. __def_67(bob).
              Infer __def_67(bob) using __def_67(bob).
109.1.1.4. __def_67(server) :- agent(server).
            agent(server) must be by agent(server).
109.1.1.4.1. __def_67(server).
              Infer __def_67(server) using __def_67(server).
109.2. __def_67(X1) :- __def_62(pub), __def_63(X1).
        Because the following simpler clause holds:
109.2.1. __def_67(X1) :- __def_63(X1).
          By induction on X1 satisfying __def_63, must start with i.
109.2.1.1. __def_67(i) :- __def_63(i).
            __def_63(i) must be by __def_63(i).
109.2.1.1.1. __def_67(i).: see 109.1.1.1.1.
109.3. __def_67(X1) :- __def_12(pub), __def_13(X1).
        Because the following simpler clause holds:
109.3.1. __def_67(X1) :- __def_13(X1).
          By induction on X1 satisfying __def_13, must start with session_old.
109.3.1.1. __def_67(session_old(X1,X2)) :- __def_13(session_old(X1,X2)).
            __def_13(session_old(X1,X2)) must be by __def_13(session_old(X1,X2)) :- agent(X1), agent(X2).
109.3.1.1.1. __def_67(session_old(X1,X2)) :- agent(X1), agent(X2).
              Infer __def_67(session_old(X1,X2)) using __def_67(session_old(X1,X2)) :- agent(X1), agent(X2).
109.3.1.1.1.1. agent(X1) :- agent(X1), agent(X2).: see 3.1.1.1.1.1.
109.3.1.1.1.2. agent(X2) :- agent(X1), agent(X2).: see 3.1.1.1.1.2.
. lemma 110:
110. __def_39(nonceb_old(X1,X2)) :- __def_35 (X1,X3,X2).
      Examine all ways of building __def_35 (X1,X3,X2) in the body.
      The 3 possibilities are:
      __def_35(X1,X2,X3) :- knows_old(X1), __def_36(X2).
      __def_35(X1,X2,X3) :- knows_old(X1), __type_7(X2).
      __def_35(X1,X2,X3) :- knows_old(X1), __def_24(X2).
110.1. __def_39(nonceb_old(X1,X2)) :- knows_old(X1), __def_36(X3).
        Equivalent to:
110.1.1. __def_39(nonceb_old(X1,X2)) :- __def_36(X3), knows_old(X1).
          Infer __def_39(nonceb_old(X1,X2)) using __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
110.1.1.1. knows_old(X1) :- __def_36(X3), knows_old(X1).: see 9.1.1.1.
110.2. __def_39(nonceb_old(X1,X2)) :- knows_old(X1), __type_7(X3).
        Equivalent to:
110.2.1. __def_39(nonceb_old(X1,X2)) :- __type_7(X3), knows_old(X1).
          Infer __def_39(nonceb_old(X1,X2)) using __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
110.2.1.1. knows_old(X1) :- __type_7(X3), knows_old(X1).: see 9.2.1.1.
110.3. __def_39(nonceb_old(X1,X2)) :- knows_old(X1), __def_24(X3).
        Equivalent to:
110.3.1. __def_39(nonceb_old(X1,X2)) :- __def_24(X3), knows_old(X1).
          Infer __def_39(nonceb_old(X1,X2)) using __def_39(nonceb_old(X1,X2)) :- knows_old(X1).
110.3.1.1. knows_old(X1) :- __def_24(X3), knows_old(X1).: see 9.3.1.1.
. lemma 111:
111. __def_87(sym).
      Infer __def_87(sym) using __def_87(sym).
. lemma 112:
112. __def_97(cons(X1,X2)) :- __def_99(X2), __type_21(X1).
      Infer __def_97(cons(X1,X2)) using __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
112.1. __type_21(X1) :- __def_99(X2), __type_21(X1).
        Because the following simpler clause holds:
112.1.1. __type_21(X1) :- __type_21(X1). is a tautology.
112.2. __def_99(X2) :- __def_99(X2), __type_21(X1).
        Because the following simpler clause holds:
112.2.1. __def_99(X2) :- __def_99(X2). is a tautology.
. lemma 113:
113. __def_21(r_old(X1,X2)) :- __def_18 (X1,X3).
      __def_18 (X1,X3) must be by __def_18(X1,X2) :- knows_old(X1), knows_old(X2).
113.1. __def_21(r_old(X1,X2)) :- knows_old(X1), knows_old(X3).
        Equivalent to:
113.1.1. __def_21(r_old(X1,X2)) :- knows_old(X3), knows_old(X1).
          Infer __def_21(r_old(X1,X2)) using __def_21(r_old(X1,X2)) :- knows_old(X1).
113.1.1.1. knows_old(X1) :- knows_old(X3), knows_old(X1).: see 45.1.1.1.
. lemma 114:
114. __type_28(X1) :- testable_current(X1).
      By induction on X1 satisfying testable_current, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
114.1. __type_28(dec(X1,X2)) :- testable_current(dec(X1,X2)).
        testable_current(dec(X1,X2)) must be by testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
114.1.1. __type_28(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
          Infer __type_28(dec(X1,X2)) using __type_28(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
114.1.1.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
114.1.1.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
114.2. __type_28(s(X1)) :- testable_current(s(X1)).
        testable_current(s(X1)) must be by testable_current(s(X)) :- testable_current(X).
114.2.1. __type_28(s(X1)) :- testable_current(X1).
          Infer __type_28(s(X1)) using __type_28(s(X)) :- testable_current(X).
114.2.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
114.3. __type_28(nil) :- testable_current(nil).
        testable_current(nil) must be by testable_current(nil).
114.3.1. __type_28(nil).
          Infer __type_28(nil) using __type_28(nil).
114.4. __type_28(nonceb_old(X1,X2)) :- testable_current(nonceb_old(X1,X2)).
        testable_current(nonceb_old(X1,X2)) must be by testable_current(nonceb_old(X1,X2)).
114.4.1. __type_28(nonceb_old(X1,X2)).
          Infer __type_28(nonceb_old(X1,X2)) using __type_28(nonceb_old(X1,X2)).
114.5. __type_28(i) :- testable_current(i).
        testable_current(i) must be by testable_current(i).
114.5.1. __type_28(i).
          Infer __type_28(i) using __type_28(i).
114.6. __type_28(r_old(X1,X2)) :- testable_current(r_old(X1,X2)).
        testable_current(r_old(X1,X2)) must be by testable_current(r_old(X1,X2)) :- knows_old(X1).
114.6.1. __type_28(r_old(X1,X2)) :- knows_old(X1).
          Infer __type_28(r_old(X1,X2)) using __type_28(r_old(X1,X2)) :- knows_old(X1).
114.6.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
114.7. __type_28(p(X1)) :- testable_current(p(X1)).
        testable_current(p(X1)) must be by testable_current(p(X)) :- testable_current(X).
114.7.1. __type_28(p(X1)) :- testable_current(X1).
          Infer __type_28(p(X1)) using __type_28(p(X)) :- testable_current(X).
114.7.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
114.8. __type_28(key(X1,X2)) :- testable_current(key(X1,X2)).
        Examine all ways of building testable_current(key(X1,X2)) in the body.
        The 4 possibilities are:
        testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
        testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
        testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
        testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
114.8.1. __type_28(key(X1,X2)) :- __def_51(X1), agent(X2).
          Infer __type_28(key(X1,X2)) using __type_28(key(X1,X2)) :- __def_51(X1), agent(X2).
114.8.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
114.8.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
114.8.2. __type_28(key(X1,X2)) :- __def_121(X1), __type_31(X2).
          Infer __type_28(key(X1,X2)) using __type_28(key(X1,X2)) :- __def_121(X1), __type_31(X2).
114.8.2.1. __def_121(X1) :- __def_121(X1), __type_31(X2).: see 82.8.2.1.
114.8.2.2. __type_31(X2) :- __def_121(X1), __type_31(X2).: see 82.8.2.2.
114.8.3. __type_28(key(X1,X2)) :- __def_118(X1), __type_29(X2).
          Infer __type_28(key(X1,X2)) using __type_28(key(X1,X2)) :- __def_118(X1), __type_29(X2).
114.8.3.1. __def_118(X1) :- __def_118(X1), __type_29(X2).: see 82.8.3.1.
114.8.3.2. __type_29(X2) :- __def_118(X1), __type_29(X2).: see 82.8.3.2.
114.8.4. __type_28(key(X1,X2)) :- __def_12(X1), __def_13(X2).
          Infer __type_28(key(X1,X2)) using __type_28(key(X1,X2)) :- __def_12(X1), __def_13(X2).
114.8.4.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
114.8.4.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
114.9. __type_28(cons(X1,X2)) :- testable_current(cons(X1,X2)).
        Examine all ways of building testable_current(cons(X1,X2)) in the body.
        The 2 possibilities are:
        testable_current(cons(X1,X2)) :- testable_current(X1).
        testable_current(cons(X1,X2)) :- testable_current(X2).
114.9.1. __type_28(cons(X1,X2)) :- testable_current(X1).
          Infer __type_28(cons(X1,X2)) using __type_28(cons(X1,X2)) :- testable_current(X1).
114.9.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
114.9.2. __type_28(cons(X1,X2)) :- testable_current(X2).
          Infer __type_28(cons(X1,X2)) using __type_28(cons(X1,X2)) :- testable_current(X2).
114.9.2.1. testable_current(X2) :- testable_current(X2).: see 82.9.2.1.
114.10. __type_28(crypt(X1,X2)) :- testable_current(crypt(X1,X2)).
         Examine all ways of building testable_current(crypt(X1,X2)) in the body.
         The 11 possibilities are:
         testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
         testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
         testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
         testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
         testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
         testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
         testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
         testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
         testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
         testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
         testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
114.10.1. __type_28(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
114.10.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.1.
114.10.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.2.
114.10.2. __type_28(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
114.10.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
114.10.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
114.10.3. __type_28(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
114.10.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
114.10.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
114.10.4. __type_28(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
114.10.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
114.10.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
114.10.5. __type_28(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
114.10.5.1. __type_27(X1) :- __type_27(X1), __def_114(X2).: see 82.10.5.1.
114.10.5.2. __def_114(X2) :- __type_27(X1), __def_114(X2).: see 82.10.5.2.
114.10.6. __type_28(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
114.10.6.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
114.10.6.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
114.10.7. __type_28(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
114.10.7.1. __type_26(X1) :- __type_26(X1), __def_112(X2).: see 82.10.7.1.
114.10.7.2. __def_112(X2) :- __type_26(X1), __def_112(X2).: see 82.10.7.2.
114.10.8. __type_28(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
114.10.8.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
114.10.8.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
114.10.9. __type_28(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
           Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
114.10.9.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
114.10.9.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
114.10.10. __type_28(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
            Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
114.10.10.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
114.10.10.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
114.10.11. __type_28(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_28(crypt(X1,X2)) using __type_28(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
114.10.11.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
114.10.11.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
114.11. __type_28(noncea_old(X1,X2)) :- testable_current(noncea_old(X1,X2)).
         testable_current(noncea_old(X1,X2)) must be by testable_current(noncea_old(X1,X2)).
114.11.1. __type_28(noncea_old(X1,X2)).
           Infer __type_28(noncea_old(X1,X2)) using __type_28(noncea_old(X1,X2)).
114.12. __type_28(alice) :- testable_current(alice).
         testable_current(alice) must be by testable_current(alice).
114.12.1. __type_28(alice).
           Infer __type_28(alice) using __type_28(alice).
114.13. __type_28(enc(X1,X2)) :- testable_current(enc(X1,X2)).
         Examine all ways of building testable_current(enc(X1,X2)) in the body.
         The 4 possibilities are:
         testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
         testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
         testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
         testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
114.13.1. __type_28(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
           Infer __type_28(enc(X1,X2)) using __type_28(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
114.13.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
114.13.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
114.13.2. __type_28(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
           Infer __type_28(enc(X1,X2)) using __type_28(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
114.13.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
114.13.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
114.13.3. __type_28(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
           Infer __type_28(enc(X1,X2)) using __type_28(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
114.13.3.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
114.13.3.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
114.13.4. __type_28(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
           Infer __type_28(enc(X1,X2)) using __type_28(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
114.13.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
114.13.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
114.14. __type_28(bob) :- testable_current(bob).
         testable_current(bob) must be by testable_current(bob).
114.14.1. __type_28(bob).
           Infer __type_28(bob) using __type_28(bob).
114.15. __type_28(server) :- testable_current(server).
         testable_current(server) must be by testable_current(server).
114.15.1. __type_28(server).
           Infer __type_28(server) using __type_28(server).
114.16. __type_28(passwd_old(X1,X2)) :- testable_current(passwd_old(X1,X2)).
         testable_current(passwd_old(X1,X2)) must be by testable_current(passwd_old(X1,X2)).
114.16.1. __type_28(passwd_old(X1,X2)).
           Infer __type_28(passwd_old(X1,X2)) using __type_28(passwd_old(X1,X2)).
. lemma 115:
115. __def_82(r_current(X1,X2)) :- __def_79 (X1,X3).
      __def_79 (X1,X3) must be by __def_79(X1,X2) :- knows_current(X1), knows_current(X2).
115.1. __def_82(r_current(X1,X2)) :- knows_current(X1), knows_current(X3).
        Equivalent to:
115.1.1. __def_82(r_current(X1,X2)) :- knows_current(X3), knows_current(X1).
          Infer __def_82(r_current(X1,X2)) using __def_82(r_current(X1,X2)) :- knows_current(X1).
115.1.1.1. knows_current(X1) :- knows_current(X3), knows_current(X1).: see 77.1.1.1.
. lemma 116:
116. __def_66 (X1,X2) :- knows_current(crypt(X2,key(prv,X1))).
      Examine all ways of building knows_current(crypt(X2,key(prv,X1))) in the body.
      The 8 possibilities are:
      knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
      knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
      knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
      knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
      knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
      knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
      knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
      knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
116.1. __def_66 (X1,X2) :- __type_22(X2), __def_105(key(prv,X1)).
        Equivalent to:
116.1.1. __def_66 (X1,X2) :- __def_105(key(prv,X1)), __type_22(X2).
          __def_105(key(prv,X1)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
116.1.1.1. __def_66 (X1,X2) :- __def_106(prv), __type_23(X1), __type_22(X2).
            Equivalent to:
116.1.1.1.1. __def_66 (X1,X2) :- __def_106(prv), __type_22(X2), __type_23(X1).
              This is implied by:
116.1.1.1.1.1. #false() :- __def_106(prv).
                __def_106(prv) is impossible.
116.2. __def_66 (X1,X2) :- __def_28(X2), __def_29(key(prv,X1)).
        __def_29(key(prv,X1)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
116.2.1. __def_66 (X1,X2) :- __def_33(prv), __def_34(X1), __def_28(X2).
          Equivalent to:
116.2.1.1. __def_66 (X1,X2) :- __def_28(X2), __def_33(prv), __def_34(X1).
            This is implied by:
116.2.1.1.1. #false() :- __def_33(prv).: see 29.1.1.1.1.
116.3. __def_66 (X1,X2) :- __def_85(X2), __def_86(key(prv,X1)).
        __def_86(key(prv,X1)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
116.3.1. __def_66 (X1,X2) :- __def_87(prv), __type_19(X1), __def_85(X2).
          Equivalent to:
116.3.1.1. __def_66 (X1,X2) :- __def_85(X2), __def_87(prv), __type_19(X1).
            This is implied by:
116.3.1.1.1. #false() :- __def_87(prv).
              __def_87(prv) is impossible.
116.4. __def_66 (X1,X2) :- __def_17(X2), __type_2(key(prv,X1)).
        __type_2(key(prv,X1)) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
116.4.1. __def_66 (X1,X2) :- __def_12(prv), __def_13(X1), __def_17(X2).
          This is implied by:
116.4.1.1. #false() :- __def_12(prv).
            __def_12(prv) is impossible.
116.5. __def_66 (X1,X2) :- __def_24(X2), __def_25(key(prv,X1)).
        __def_25(key(prv,X1)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
116.5.1. __def_66 (X1,X2) :- __def_26(prv), __type_4(X1), __def_24(X2).
          Equivalent to:
116.5.1.1. __def_66 (X1,X2) :- __def_24(X2), __def_26(prv), __type_4(X1).
            This is implied by:
116.5.1.1.1. #false() :- __def_26(prv).: see 29.2.1.1.1.
116.6. __def_66 (X1,X2) :- __type_7(X2), __def_44(key(prv,X1)).
        Equivalent to:
116.6.1. __def_66 (X1,X2) :- __def_44(key(prv,X1)), __type_7(X2).
          __def_44(key(prv,X1)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
116.6.1.1. __def_66 (X1,X2) :- __def_45(prv), __type_8(X1), __type_7(X2).
            Equivalent to:
116.6.1.1.1. __def_66 (X1,X2) :- __def_45(prv), __type_7(X2), __type_8(X1).
              This is implied by:
116.6.1.1.1.1. #false() :- __def_45(prv).: see 29.3.1.1.1.1.
116.7. __def_66 (X1,X2) :- __def_97(X2), __def_98(key(prv,X1)).
        __def_98(key(prv,X1)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
116.7.1. __def_66 (X1,X2) :- __def_102(prv), __def_103(X1), __def_97(X2).
          This is implied by:
116.7.1.1. #false() :- __def_102(prv).
            __def_102(prv) is impossible.
116.8. __def_66 (X1,X2) :- knows_current(X2), knows_current(key(prv,X1)).
        Examine all ways of building knows_current(key(prv,X1)) in the body.
        The 3 possibilities are:
        knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
        knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
        knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
116.8.1. __def_66 (X1,X2) :- __def_51(prv), agent(X1), knows_current(X2).
          This is implied by:
116.8.1.1. #false() :- __def_51(prv).: see 29.4.1.1.
116.8.2. __def_66 (X1,X2) :- __def_62(prv), __def_63(X1), knows_current(X2).
          Infer __def_66 (X1,X2) using __def_66(X1,X2) :- __def_63(X1), knows_current(X2).
116.8.2.1. __def_63(X1) :- __def_62(prv), __def_63(X1), knows_current(X2).
            Because the following simpler clause holds:
116.8.2.1.1. __def_63(X1) :- __def_63(X1).: see 29.4.2.1.1.
116.8.2.2. knows_current(X2) :- __def_62(prv), __def_63(X1), knows_current(X2).
            Because the following simpler clause holds:
116.8.2.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
116.8.3. __def_66 (X1,X2) :- __def_12(prv), __def_13(X1), knows_current(X2).
          This is implied by:
116.8.3.1. #false() :- __def_12(prv).: see 116.4.1.1.
. lemma 117:
117. __def_31(nonceb_old(X1,X2)) :- __def_27 (X1,X3,X2).
      Examine all ways of building __def_27 (X1,X3,X2) in the body.
      The 3 possibilities are:
      __def_27(X1,X2,X3) :- knows_old(X1), __def_36(X2).
      __def_27(X1,X2,X3) :- knows_old(X1), __type_7(X2).
      __def_27(X1,X2,X3) :- knows_old(X1), __def_24(X2).
117.1. __def_31(nonceb_old(X1,X2)) :- knows_old(X1), __def_36(X3).
        Equivalent to:
117.1.1. __def_31(nonceb_old(X1,X2)) :- __def_36(X3), knows_old(X1).
          Infer __def_31(nonceb_old(X1,X2)) using __def_31(nonceb_old(X1,X2)) :- knows_old(X1).
117.1.1.1. knows_old(X1) :- __def_36(X3), knows_old(X1).: see 9.1.1.1.
117.2. __def_31(nonceb_old(X1,X2)) :- knows_old(X1), __type_7(X3).
        Equivalent to:
117.2.1. __def_31(nonceb_old(X1,X2)) :- __type_7(X3), knows_old(X1).
          Infer __def_31(nonceb_old(X1,X2)) using __def_31(nonceb_old(X1,X2)) :- knows_old(X1).
117.2.1.1. knows_old(X1) :- __type_7(X3), knows_old(X1).: see 9.2.1.1.
117.3. __def_31(nonceb_old(X1,X2)) :- knows_old(X1), __def_24(X3).
        Equivalent to:
117.3.1. __def_31(nonceb_old(X1,X2)) :- __def_24(X3), knows_old(X1).
          Infer __def_31(nonceb_old(X1,X2)) using __def_31(nonceb_old(X1,X2)) :- knows_old(X1).
117.3.1.1. knows_old(X1) :- __def_24(X3), knows_old(X1).: see 9.3.1.1.
. lemma 118:
118. __type_20(X1) :- __def_88 (X2,X1,X3).
      Examine all ways of building __def_88 (X2,X1,X3) in the body.
      The 3 possibilities are:
      __def_88(X1,X2,X3) :- knows_current(X1), __def_85(X2).
      __def_88(X1,X2,X3) :- knows_current(X1), __def_97(X2).
      __def_88(X1,X2,X3) :- knows_current(X1), __type_22(X2).
118.1. __type_20(X1) :- knows_current(X2), __def_85(X1).
        Equivalent to:
118.1.1. __type_20(X1) :- __def_85(X1), knows_current(X2).
          Because the following simpler clause holds:
118.1.1.1. __type_20(X1) :- __def_85(X1).
            By induction on X1 satisfying __def_85, must start with noncea_current.
118.1.1.1.1. __type_20(noncea_current(X1,X2)) :- __def_85(noncea_current(X1,X2)).
              __def_85(noncea_current(X1,X2)) must be by __def_85(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
118.1.1.1.1.1. __type_20(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).: see 98.7.1.1.1.1.1.1.1.1.2.1.
118.2. __type_20(X1) :- knows_current(X2), __def_97(X1).
        Equivalent to:
118.2.1. __type_20(X1) :- __def_97(X1), knows_current(X2).
          Because the following simpler clause holds:
118.2.1.1. __type_20(X1) :- __def_97(X1).
            By induction on X1 satisfying __def_97, must start with cons.
118.2.1.1.1. __type_20(cons(X1,X2)) :- __def_97(cons(X1,X2)).
              __def_97(cons(X1,X2)) must be by __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
118.2.1.1.1.1. __type_20(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
                Infer __type_20(cons(X1,X2)) using __type_20(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
118.2.1.1.1.1.1. __type_20(X1) :- __type_21(X1), __def_99(X2).: see 98.7.1.1.1.1.1.1.
118.2.1.1.1.1.2. __def_91(X2) :- __type_21(X1), __def_99(X2).: see 98.7.1.1.1.1.1.2.
118.3. __type_20(X1) :- knows_current(X2), __type_22(X1).
        Equivalent to:
118.3.1. __type_20(X1) :- __type_22(X1), knows_current(X2).
          Because the following simpler clause holds:
118.3.1.1. __type_20(X1) :- __type_22(X1).
            By induction on X1 satisfying __type_22, must start with nonceb_current.
118.3.1.1.1. __type_20(nonceb_current(X1,X2)) :- __type_22(nonceb_current(X1,X2)).
              __type_22(nonceb_current(X1,X2)) must be by __type_22(nonceb_current(X1,X2)) :- knows_current(X1).
118.3.1.1.1.1. __type_20(nonceb_current(X1,X2)) :- knows_current(X1).: see 98.7.1.1.1.1.1.1.1.1.3.1.
. lemma 119:
119. __def_76(crypt(X1,X2)) :- __type_17(X2), __def_78(X1).
      Equivalent to:
119.1. __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
        Infer __def_76(crypt(X1,X2)) using __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
119.1.1. __def_78(X1) :- __def_78(X1), __type_17(X2).: see 15.1.1.1.1.1.1.
119.1.2. __type_17(X2) :- __def_78(X1), __type_17(X2).: see 15.1.1.1.1.1.2.
. lemma 120:
120. __def_112(key(X1,X2)) :- __def_65(X2), __def_113(X1).
      Equivalent to:
120.1. __def_112(key(X1,X2)) :- __def_113(X1), __def_65(X2).
        Infer __def_112(key(X1,X2)) using __def_112(key(X1,X2)) :- __def_113(X1), __def_65(X2).
120.1.1. __def_113(X1) :- __def_113(X1), __def_65(X2).
          Because the following simpler clause holds:
120.1.1.1. __def_113(X1) :- __def_113(X1). is a tautology.
120.1.2. __def_65(X2) :- __def_113(X1), __def_65(X2).
          Because the following simpler clause holds:
120.1.2.1. __def_65(X2) :- __def_65(X2). is a tautology.
. lemma 121:
121. __def_19(crypt(X1,X2)) :- __def_22(X2), __def_21(X1).
      Equivalent to:
121.1. __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
        Infer __def_19(crypt(X1,X2)) using __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
121.1.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
121.1.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
. lemma 122:
122. __def_60 (X1,X2) :- knows_old(crypt(X2,key(sym,X1))).
      Examine all ways of building knows_old(crypt(X2,key(sym,X1))) in the body.
      The 4 possibilities are:
      knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
      knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
      knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
      knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
122.1. __def_60 (X1,X2) :- __def_28(X2), __def_29(key(sym,X1)).
        __def_29(key(sym,X1)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
122.1.1. __def_60 (X1,X2) :- __def_33(sym), __def_34(X1), __def_28(X2).
          Equivalent to:
122.1.1.1. __def_60 (X1,X2) :- __def_28(X2), __def_33(sym), __def_34(X1).
            Infer __def_60 (X1,X2) using __def_60(X1,X2) :- __def_42(X1), __def_36(X2).
122.1.1.1.1. __def_42(X1) :- __def_28(X2), __def_33(sym), __def_34(X1).: see 59.2.1.1.1.
122.1.1.1.2. __def_36(X2) :- __def_28(X2), __def_33(sym), __def_34(X1).: see 59.2.1.1.2.
122.2. __def_60 (X1,X2) :- __def_24(X2), __def_25(key(sym,X1)).
        __def_25(key(sym,X1)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
122.2.1. __def_60 (X1,X2) :- __def_26(sym), __type_4(X1), __def_24(X2).
          Equivalent to:
122.2.1.1. __def_60 (X1,X2) :- __def_24(X2), __def_26(sym), __type_4(X1).
            Infer __def_60 (X1,X2) using __def_60(X1,X2) :- __type_4(X1), __def_24(X2).
122.2.1.1.1. __type_4(X1) :- __def_24(X2), __def_26(sym), __type_4(X1).: see 59.5.1.1.1.
122.2.1.1.2. __def_24(X2) :- __def_24(X2), __def_26(sym), __type_4(X1).: see 59.5.1.1.2.
122.3. __def_60 (X1,X2) :- __type_7(X2), __def_44(key(sym,X1)).
        Equivalent to:
122.3.1. __def_60 (X1,X2) :- __def_44(key(sym,X1)), __type_7(X2).
          __def_44(key(sym,X1)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
122.3.1.1. __def_60 (X1,X2) :- __def_45(sym), __type_8(X1), __type_7(X2).
            Equivalent to:
122.3.1.1.1. __def_60 (X1,X2) :- __def_45(sym), __type_7(X2), __type_8(X1).
              Infer __def_60 (X1,X2) using __def_60(X1,X2) :- __type_8(X1), __type_7(X2).
122.3.1.1.1.1. __type_8(X1) :- __def_45(sym), __type_7(X2), __type_8(X1).: see 59.6.1.1.1.1.
122.3.1.1.1.2. __type_7(X2) :- __def_45(sym), __type_7(X2), __type_8(X1).: see 59.6.1.1.1.2.
122.4. __def_60 (X1,X2) :- knows_old(X2), knows_old(key(sym,X1)).
        Examine all ways of building knows_old(key(sym,X1)) in the body.
        The 2 possibilities are:
        knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
        knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
122.4.1. __def_60 (X1,X2) :- __def_51(sym), agent(X1), knows_old(X2).
          This is implied by:
122.4.1.1. #false() :- __def_51(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.1.1.
122.4.2. __def_60 (X1,X2) :- __def_62(sym), __def_63(X1), knows_old(X2).
          This is implied by:
122.4.2.1. #false() :- __def_62(sym).: see 8.1.3.1.1.1.1.1.1.3.1.4.1.1.2.1.
. lemma 123:
123. __def_23 (X1,X2,X3) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).
      Examine all ways of building knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))) in the body.
      The 3 possibilities are:
      knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
      knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
      knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
123.1. __def_23 (X1,X2,X3) :- __def_15(crypt(X3,key(pub,session_old(X1,X2)))), __def_16(passwd_old(X1,X2)).
        __def_15(crypt(X3,key(pub,session_old(X1,X2)))) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
123.1.1. __def_23 (X1,X2,X3) :- __def_17(X3), __type_2(key(pub,session_old(X1,X2))), __def_16(passwd_old(X1,X2)).
          Equivalent to:
123.1.1.1. __def_23 (X1,X2,X3) :- __def_16(passwd_old(X1,X2)), __def_17(X3), __type_2(key(pub,session_old(X1,X2))).
            __def_16(passwd_old(X1,X2)) must be by __def_16(passwd_old(X1,X2)) :- knows_old(X1).
123.1.1.1.1. __def_23 (X1,X2,X3) :- knows_old(X1), __def_17(X3), __type_2(key(pub,session_old(X1,X2))).
              Equivalent to:
123.1.1.1.1.1. __def_23 (X1,X2,X3) :- __def_17(X3), __type_2(key(pub,session_old(X1,X2))), knows_old(X1).
                __type_2(key(pub,session_old(X1,X2))) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
123.1.1.1.1.1.1. __def_23 (X1,X2,X3) :- __def_12(pub), __def_13(session_old(X1,X2)), __def_17(X3), knows_old(X1).
                  This is implied by:
123.1.1.1.1.1.1.1. __def_23 (X1,X2,X3) :- __def_13(session_old(X1,X2)), __def_17(X3), knows_old(X1).
                    __def_13(session_old(X1,X2)) must be by __def_13(session_old(X1,X2)) :- agent(X1), agent(X2).
123.1.1.1.1.1.1.1.1. __def_23 (X1,X2,X3) :- agent(X1), agent(X2), __def_17(X3), knows_old(X1).
                      Equivalent to:
123.1.1.1.1.1.1.1.1.1. __def_23 (X1,X2,X3) :- __def_17(X3), agent(X2), agent(X1), knows_old(X1).
                        Infer __def_23 (X1,X2,X3) using __def_23(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_17(X3).
123.1.1.1.1.1.1.1.1.1.1. agent(X1) :- __def_17(X3), agent(X2), agent(X1), knows_old(X1).
                          Because the following simpler clause holds:
123.1.1.1.1.1.1.1.1.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
123.1.1.1.1.1.1.1.1.1.2. __type_1(X1) :- __def_17(X3), agent(X2), agent(X1), knows_old(X1).
                          Because the following simpler clause holds:
123.1.1.1.1.1.1.1.1.1.2.1. __type_1(X1) :- agent(X1).: see 6.3.1.1.1.1.1.1.1.1.2.1.
123.1.1.1.1.1.1.1.1.1.3. agent(X2) :- __def_17(X3), agent(X2), agent(X1), knows_old(X1).
                          Because the following simpler clause holds:
123.1.1.1.1.1.1.1.1.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
123.1.1.1.1.1.1.1.1.1.4. __def_17(X3) :- __def_17(X3), agent(X2), agent(X1), knows_old(X1).
                          Because the following simpler clause holds:
123.1.1.1.1.1.1.1.1.1.4.1. __def_17(X3) :- __def_17(X3). is a tautology.
123.2. __def_23 (X1,X2,X3) :- __def_19(crypt(X3,key(pub,session_old(X1,X2)))), __def_20(passwd_old(X1,X2)).
        __def_19(crypt(X3,key(pub,session_old(X1,X2)))) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
123.2.1. __def_23 (X1,X2,X3) :- __def_21(X3), __def_22(key(pub,session_old(X1,X2))), __def_20(passwd_old(X1,X2)).
          Equivalent to:
123.2.1.1. __def_23 (X1,X2,X3) :- __def_20(passwd_old(X1,X2)), __def_21(X3), __def_22(key(pub,session_old(X1,X2))).
            __def_20(passwd_old(X1,X2)) must be by __def_20(passwd_old(X1,X2)) :- knows_old(X1).
123.2.1.1.1. __def_23 (X1,X2,X3) :- knows_old(X1), __def_21(X3), __def_22(key(pub,session_old(X1,X2))).
              Equivalent to:
123.2.1.1.1.1. __def_23 (X1,X2,X3) :- __def_21(X3), __def_22(key(pub,session_old(X1,X2))), knows_old(X1).
                __def_22(key(pub,session_old(X1,X2))) is impossible.
123.3. __def_23 (X1,X2,X3) :- knows_old(crypt(X3,key(pub,session_old(X1,X2)))), knows_old(passwd_old(X1,X2)).
        Examine all ways of building knows_old(crypt(X3,key(pub,session_old(X1,X2)))) in the body.
        The 4 possibilities are:
        knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
123.3.1. __def_23 (X1,X2,X3) :- __def_28(X3), __def_29(key(pub,session_old(X1,X2))), knows_old(passwd_old(X1,X2)).
          __def_29(key(pub,session_old(X1,X2))) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
123.3.1.1. __def_23 (X1,X2,X3) :- __def_33(pub), __def_34(session_old(X1,X2)), __def_28(X3), knows_old(passwd_old(X1,X2)).
            Equivalent to:
123.3.1.1.1. __def_23 (X1,X2,X3) :- __def_28(X3), __def_33(pub), __def_34(session_old(X1,X2)), knows_old(passwd_old(X1,X2)).
              This is implied by:
123.3.1.1.1.1. __def_23 (X1,X2,X3) :- __def_28(X3), __def_34(session_old(X1,X2)), knows_old(passwd_old(X1,X2)).
                __def_34(session_old(X1,X2)) is impossible.
123.3.2. __def_23 (X1,X2,X3) :- __def_24(X3), __def_25(key(pub,session_old(X1,X2))), knows_old(passwd_old(X1,X2)).
          __def_25(key(pub,session_old(X1,X2))) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
123.3.2.1. __def_23 (X1,X2,X3) :- __def_26(pub), __type_4(session_old(X1,X2)), __def_24(X3), knows_old(passwd_old(X1,X2)).
            Equivalent to:
123.3.2.1.1. __def_23 (X1,X2,X3) :- __def_24(X3), __def_26(pub), __type_4(session_old(X1,X2)), knows_old(passwd_old(X1,X2)).
              This is implied by:
123.3.2.1.1.1. __def_23 (X1,X2,X3) :- __def_24(X3), __type_4(session_old(X1,X2)), knows_old(passwd_old(X1,X2)).
                __type_4(session_old(X1,X2)) is impossible.
123.3.3. __def_23 (X1,X2,X3) :- __type_7(X3), __def_44(key(pub,session_old(X1,X2))), knows_old(passwd_old(X1,X2)).
          Equivalent to:
123.3.3.1. __def_23 (X1,X2,X3) :- __def_44(key(pub,session_old(X1,X2))), __type_7(X3), knows_old(passwd_old(X1,X2)).
            __def_44(key(pub,session_old(X1,X2))) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
123.3.3.1.1. __def_23 (X1,X2,X3) :- __def_45(pub), __type_8(session_old(X1,X2)), __type_7(X3), knows_old(passwd_old(X1,X2)).
              Equivalent to:
123.3.3.1.1.1. __def_23 (X1,X2,X3) :- __def_45(pub), __type_7(X3), __type_8(session_old(X1,X2)), knows_old(passwd_old(X1,X2)).
                This is implied by:
123.3.3.1.1.1.1. __def_23 (X1,X2,X3) :- __type_7(X3), __type_8(session_old(X1,X2)), knows_old(passwd_old(X1,X2)).
                  __type_8(session_old(X1,X2)) is impossible.
123.3.4. __def_23 (X1,X2,X3) :- knows_old(X3), knows_old(key(pub,session_old(X1,X2))), knows_old(passwd_old(X1,X2)).
          Examine all ways of building knows_old(key(pub,session_old(X1,X2))) in the body.
          The 2 possibilities are:
          knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
          knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
123.3.4.1. __def_23 (X1,X2,X3) :- __def_51(pub), agent(session_old(X1,X2)), knows_old(X3), knows_old(passwd_old(X1,X2)).
            This is implied by:
123.3.4.1.1. __def_23 (X1,X2,X3) :- agent(session_old(X1,X2)), knows_old(X3), knows_old(passwd_old(X1,X2)).
              agent(session_old(X1,X2)) is impossible.
123.3.4.2. __def_23 (X1,X2,X3) :- __def_62(pub), __def_63(session_old(X1,X2)), knows_old(X3), knows_old(passwd_old(X1,X2)).
            This is implied by:
123.3.4.2.1. __def_23 (X1,X2,X3) :- __def_63(session_old(X1,X2)), knows_old(X3), knows_old(passwd_old(X1,X2)).
              __def_63(session_old(X1,X2)) is impossible.
. lemma 124:
124. __def_64 (X1,X2) :- knows_current(crypt(X2,key(pub,X1))).
      Examine all ways of building knows_current(crypt(X2,key(pub,X1))) in the body.
      The 8 possibilities are:
      knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
      knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
      knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
      knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
      knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
      knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
      knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
      knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
124.1. __def_64 (X1,X2) :- __type_22(X2), __def_105(key(pub,X1)).
        Equivalent to:
124.1.1. __def_64 (X1,X2) :- __def_105(key(pub,X1)), __type_22(X2).
          __def_105(key(pub,X1)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
124.1.1.1. __def_64 (X1,X2) :- __def_106(pub), __type_23(X1), __type_22(X2).
            Equivalent to:
124.1.1.1.1. __def_64 (X1,X2) :- __def_106(pub), __type_22(X2), __type_23(X1).
              This is implied by:
124.1.1.1.1.1. #false() :- __def_106(pub).
                __def_106(pub) is impossible.
124.2. __def_64 (X1,X2) :- __def_28(X2), __def_29(key(pub,X1)).
        __def_29(key(pub,X1)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
124.2.1. __def_64 (X1,X2) :- __def_33(pub), __def_34(X1), __def_28(X2).
          Equivalent to:
124.2.1.1. __def_64 (X1,X2) :- __def_28(X2), __def_33(pub), __def_34(X1).
            This is implied by:
124.2.1.1.1. #false() :- __def_33(pub).: see 24.1.1.1.1.
124.3. __def_64 (X1,X2) :- __def_85(X2), __def_86(key(pub,X1)).
        __def_86(key(pub,X1)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
124.3.1. __def_64 (X1,X2) :- __def_87(pub), __type_19(X1), __def_85(X2).
          Equivalent to:
124.3.1.1. __def_64 (X1,X2) :- __def_85(X2), __def_87(pub), __type_19(X1).
            This is implied by:
124.3.1.1.1. #false() :- __def_87(pub).
              __def_87(pub) is impossible.
124.4. __def_64 (X1,X2) :- __def_17(X2), __type_2(key(pub,X1)).
        __type_2(key(pub,X1)) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
124.4.1. __def_64 (X1,X2) :- __def_12(pub), __def_13(X1), __def_17(X2).
          Infer __def_64 (X1,X2) using __def_64(X1,X2) :- __def_13(X1), __def_17(X2).
124.4.1.1. __def_13(X1) :- __def_12(pub), __def_13(X1), __def_17(X2).
            Because the following simpler clause holds:
124.4.1.1.1. __def_13(X1) :- __def_13(X1). is a tautology.
124.4.1.2. __def_17(X2) :- __def_12(pub), __def_13(X1), __def_17(X2).
            Because the following simpler clause holds:
124.4.1.2.1. __def_17(X2) :- __def_17(X2). is a tautology.
124.5. __def_64 (X1,X2) :- __def_24(X2), __def_25(key(pub,X1)).
        __def_25(key(pub,X1)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
124.5.1. __def_64 (X1,X2) :- __def_26(pub), __type_4(X1), __def_24(X2).
          Equivalent to:
124.5.1.1. __def_64 (X1,X2) :- __def_24(X2), __def_26(pub), __type_4(X1).
            This is implied by:
124.5.1.1.1. #false() :- __def_26(pub).: see 24.2.1.1.1.
124.6. __def_64 (X1,X2) :- __type_7(X2), __def_44(key(pub,X1)).
        Equivalent to:
124.6.1. __def_64 (X1,X2) :- __def_44(key(pub,X1)), __type_7(X2).
          __def_44(key(pub,X1)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
124.6.1.1. __def_64 (X1,X2) :- __def_45(pub), __type_8(X1), __type_7(X2).
            Equivalent to:
124.6.1.1.1. __def_64 (X1,X2) :- __def_45(pub), __type_7(X2), __type_8(X1).
              This is implied by:
124.6.1.1.1.1. #false() :- __def_45(pub).: see 24.3.1.1.1.1.
124.7. __def_64 (X1,X2) :- __def_97(X2), __def_98(key(pub,X1)).
        __def_98(key(pub,X1)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
124.7.1. __def_64 (X1,X2) :- __def_102(pub), __def_103(X1), __def_97(X2).
          This is implied by:
124.7.1.1. #false() :- __def_102(pub).
            __def_102(pub) is impossible.
124.8. __def_64 (X1,X2) :- knows_current(X2), knows_current(key(pub,X1)).
        Examine all ways of building knows_current(key(pub,X1)) in the body.
        The 3 possibilities are:
        knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
        knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
        knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
124.8.1. __def_64 (X1,X2) :- __def_51(pub), agent(X1), knows_current(X2).
          Infer __def_64 (X1,X2) using __def_64(X1,X2) :- agent(X1), knows_current(X2).
124.8.1.1. agent(X1) :- __def_51(pub), agent(X1), knows_current(X2).
            Because the following simpler clause holds:
124.8.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
124.8.1.2. knows_current(X2) :- __def_51(pub), agent(X1), knows_current(X2).
            Because the following simpler clause holds:
124.8.1.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
124.8.2. __def_64 (X1,X2) :- __def_62(pub), __def_63(X1), knows_current(X2).
          Infer __def_64 (X1,X2) using __def_64(X1,X2) :- agent(X1), knows_current(X2).
124.8.2.1. agent(X1) :- __def_62(pub), __def_63(X1), knows_current(X2).
            Because the following simpler clause holds:
124.8.2.1.1. agent(X1) :- __def_63(X1).: see 24.4.2.1.1.
124.8.2.2. knows_current(X2) :- __def_62(pub), __def_63(X1), knows_current(X2).
            Because the following simpler clause holds:
124.8.2.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
124.8.3. __def_64 (X1,X2) :- __def_12(pub), __def_13(X1), knows_current(X2).
          Infer __def_64 (X1,X2) using __def_64(X1,X2) :- __def_13(X1), knows_current(X2).
124.8.3.1. __def_13(X1) :- __def_12(pub), __def_13(X1), knows_current(X2).
            Because the following simpler clause holds:
124.8.3.1.1. __def_13(X1) :- __def_13(X1).: see 124.4.1.1.1.
124.8.3.2. knows_current(X2) :- __def_12(pub), __def_13(X1), knows_current(X2).
            Because the following simpler clause holds:
124.8.3.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
. lemma 125:
125. __def_10(key(X1,X2)) :- __def_13(X2), __def_12(X1).
      Equivalent to:
125.1. __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
        Infer __def_10(key(X1,X2)) using __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
125.1.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
125.1.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
. lemma 126:
126. __def_26(sym).
      Infer __def_26(sym) using __def_26(sym).
. lemma 127:
127. __def_114(key(X1,X2)) :- __def_67(X2), __def_115(X1).
      Equivalent to:
127.1. __def_114(key(X1,X2)) :- __def_115(X1), __def_67(X2).
        Infer __def_114(key(X1,X2)) using __def_114(key(X1,X2)) :- __def_115(X1), __def_67(X2).
127.1.1. __def_115(X1) :- __def_115(X1), __def_67(X2).
          Because the following simpler clause holds:
127.1.1.1. __def_115(X1) :- __def_115(X1). is a tautology.
127.1.2. __def_67(X2) :- __def_115(X1), __def_67(X2).
          Because the following simpler clause holds:
127.1.2.1. __def_67(X2) :- __def_67(X2). is a tautology.
. lemma 128:
128. __def_7(cons(X1,X2)) :- __def_9(X2), __def_8(X1).
      Equivalent to:
128.1. __def_7(cons(X1,X2)) :- __def_8(X1), __def_9(X2).
        Infer __def_7(cons(X1,X2)) using __def_7(cons(X1,X2)) :- __def_8(X1), __def_9(X2).
128.1.1. __def_8(X1) :- __def_8(X1), __def_9(X2).
          Because the following simpler clause holds:
128.1.1.1. __def_8(X1) :- __def_8(X1). is a tautology.
128.1.2. __def_9(X2) :- __def_8(X1), __def_9(X2).
          Because the following simpler clause holds:
128.1.2.1. __def_9(X2) :- __def_9(X2).: see 51.1.2.1.
. lemma 129:
129. __type_24(X1) :- __def_108 (X1,X2).
      __def_108 (X1,X2) must be by __def_108(X1,X2) :- knows_current(X1).
129.1. __type_24(X1) :- knows_current(X1).
        By induction on X1 satisfying knows_current, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
129.1.1. __type_24(dec(X1,X2)) :- knows_current(dec(X1,X2)).
          knows_current(dec(X1,X2)) must be by knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.1.1. __type_24(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_24(dec(X1,X2)) using __type_24(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.1.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
129.1.1.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
129.1.2. __type_24(s(X1)) :- knows_current(s(X1)).
          knows_current(s(X1)) must be by knows_current(s(X)) :- knows_current(X).
129.1.2.1. __type_24(s(X1)) :- knows_current(X1).
            Infer __type_24(s(X1)) using __type_24(s(X)) :- knows_current(X).
129.1.2.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
129.1.3. __type_24(nil) :- knows_current(nil).
          knows_current(nil) must be by knows_current(nil).
129.1.3.1. __type_24(nil).
            Infer __type_24(nil) using __type_24(nil).
129.1.4. __type_24(nonceb_old(X1,X2)) :- knows_current(nonceb_old(X1,X2)).
          knows_current(nonceb_old(X1,X2)) must be by knows_current(nonceb_old(X1,X2)).
129.1.4.1. __type_24(nonceb_old(X1,X2)).
            Infer __type_24(nonceb_old(X1,X2)) using __type_24(nonceb_old(X1,X2)).
129.1.5. __type_24(i) :- knows_current(i).
          knows_current(i) must be by knows_current(i).
129.1.5.1. __type_24(i).
            Infer __type_24(i) using __type_24(i).
129.1.6. __type_24(p(X1)) :- knows_current(p(X1)).
          knows_current(p(X1)) must be by knows_current(p(X)) :- knows_current(X).
129.1.6.1. __type_24(p(X1)) :- knows_current(X1).
            Infer __type_24(p(X1)) using __type_24(p(X)) :- knows_current(X).
129.1.6.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
129.1.7. __type_24(key(X1,X2)) :- knows_current(key(X1,X2)).
          Examine all ways of building knows_current(key(X1,X2)) in the body.
          The 3 possibilities are:
          knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
          knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
          knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
129.1.7.1. __type_24(key(X1,X2)) :- __def_51(X1), agent(X2).
            Infer __type_24(key(X1,X2)) using __type_24(key(X1,X2)) :- __def_51(X1), agent(X2).
129.1.7.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
129.1.7.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
129.1.7.2. __type_24(key(X1,X2)) :- __def_62(X1), __def_63(X2).
            Infer __type_24(key(X1,X2)) using __type_24(key(X1,X2)) :- __def_62(X1), __def_63(X2).
129.1.7.2.1. __def_62(X1) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.1.
129.1.7.2.2. __def_63(X2) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.2.
129.1.7.3. __type_24(key(X1,X2)) :- __def_12(X1), __def_13(X2).
            Infer __type_24(key(X1,X2)) using __type_24(key(X1,X2)) :- __def_12(X1), __def_13(X2).
129.1.7.3.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
129.1.7.3.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
129.1.8. __type_24(cons(X1,X2)) :- knows_current(cons(X1,X2)).
          knows_current(cons(X1,X2)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.8.1. __type_24(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_24(cons(X1,X2)) using __type_24(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.8.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
129.1.8.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
129.1.9. __type_24(crypt(X1,X2)) :- knows_current(crypt(X1,X2)).
          Examine all ways of building knows_current(crypt(X1,X2)) in the body.
          The 9 possibilities are:
          knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
          knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
          knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
          knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
          knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
          knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
          knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
          knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
          knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.9.1. __type_24(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
129.1.9.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.1.
129.1.9.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.2.
129.1.9.2. __type_24(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
129.1.9.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
129.1.9.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
129.1.9.3. __type_24(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
129.1.9.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
129.1.9.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
129.1.9.4. __type_24(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
129.1.9.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
129.1.9.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
129.1.9.5. __type_24(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
129.1.9.5.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
129.1.9.5.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
129.1.9.6. __type_24(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
129.1.9.6.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
129.1.9.6.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
129.1.9.7. __type_24(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
129.1.9.7.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
129.1.9.7.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
129.1.9.8. __type_24(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
129.1.9.8.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
129.1.9.8.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
129.1.9.9. __type_24(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_24(crypt(X1,X2)) using __type_24(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.9.9.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
129.1.9.9.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
129.1.10. __type_24(noncea_old(X1,X2)) :- knows_current(noncea_old(X1,X2)).
           knows_current(noncea_old(X1,X2)) must be by knows_current(noncea_old(X1,X2)).
129.1.10.1. __type_24(noncea_old(X1,X2)).
             Infer __type_24(noncea_old(X1,X2)) using __type_24(noncea_old(X1,X2)).
129.1.11. __type_24(alice) :- knows_current(alice).
           knows_current(alice) must be by knows_current(alice).
129.1.11.1. __type_24(alice).
             Infer __type_24(alice) using __type_24(alice).
129.1.12. __type_24(enc(X1,X2)) :- knows_current(enc(X1,X2)).
           Examine all ways of building knows_current(enc(X1,X2)) in the body.
           The 4 possibilities are:
           knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
           knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
           knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
           knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
129.1.12.1. __type_24(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
             Infer __type_24(enc(X1,X2)) using __type_24(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
129.1.12.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
129.1.12.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
129.1.12.2. __type_24(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
             Infer __type_24(enc(X1,X2)) using __type_24(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
129.1.12.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
129.1.12.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
129.1.12.3. __type_24(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
             Infer __type_24(enc(X1,X2)) using __type_24(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
129.1.12.3.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
129.1.12.3.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
129.1.12.4. __type_24(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
             Infer __type_24(enc(X1,X2)) using __type_24(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
129.1.12.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
129.1.12.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
129.1.13. __type_24(bob) :- knows_current(bob).
           knows_current(bob) must be by knows_current(bob).
129.1.13.1. __type_24(bob).
             Infer __type_24(bob) using __type_24(bob).
129.1.14. __type_24(server) :- knows_current(server).
           knows_current(server) must be by knows_current(server).
129.1.14.1. __type_24(server).
             Infer __type_24(server) using __type_24(server).
129.1.15. __type_24(passwd_old(X1,X2)) :- knows_current(passwd_old(X1,X2)).
           knows_current(passwd_old(X1,X2)) must be by knows_current(passwd_old(X1,X2)).
129.1.15.1. __type_24(passwd_old(X1,X2)).
             Infer __type_24(passwd_old(X1,X2)) using __type_24(passwd_old(X1,X2)).
. lemma 130:
130. __type_9(X1) :- __def_47 (X1,X2).
      Obvious from the universal clause __type_9(X) in the model.
. lemma 131:
131. __def_28(cons(X1,X2)) :- __def_30(X2), __type_5(X1).
      Infer __def_28(cons(X1,X2)) using __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
131.1. __type_5(X1) :- __def_30(X2), __type_5(X1).
        Because the following simpler clause holds:
131.1.1. __type_5(X1) :- __type_5(X1).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1.1.
131.2. __def_30(X2) :- __def_30(X2), __type_5(X1).
        Because the following simpler clause holds:
131.2.1. __def_30(X2) :- __def_30(X2).: see 5.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.1.
. lemma 132:
132. __def_105(key(X1,X2)) :- __type_23(X2), __def_106(X1).
      Equivalent to:
132.1. __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
        Infer __def_105(key(X1,X2)) using __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
132.1.1. __def_106(X1) :- __def_106(X1), __type_23(X2).
          Because the following simpler clause holds:
132.1.1.1. __def_106(X1) :- __def_106(X1). is a tautology.
132.1.2. __type_23(X2) :- __def_106(X1), __type_23(X2).
          Because the following simpler clause holds:
132.1.2.1. __type_23(X2) :- __type_23(X2).: see 98.1.1.1.1.2.1.
. lemma 133:
133. __def_65(X1) :- knows_current(key(prv,X1)).
      Examine all ways of building knows_current(key(prv,X1)) in the body.
      The 3 possibilities are:
      knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
      knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
      knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
133.1. __def_65(X1) :- __def_51(prv), agent(X1).
        This is implied by:
133.1.1. #false() :- __def_51(prv).: see 29.4.1.1.
133.2. __def_65(X1) :- __def_62(prv), __def_63(X1).
        Because the following simpler clause holds:
133.2.1. __def_65(X1) :- __def_63(X1).
          By induction on X1 satisfying __def_63, must start with i.
133.2.1.1. __def_65(i) :- __def_63(i).
            __def_63(i) must be by __def_63(i).
133.2.1.1.1. __def_65(i).
              Infer __def_65(i) using __def_65(i).
133.3. __def_65(X1) :- __def_12(prv), __def_13(X1).
        This is implied by:
133.3.1. #false() :- __def_12(prv).: see 116.4.1.1.
. lemma 134:
134. __def_98(key(X1,X2)) :- __def_103(X2), __def_102(X1).
      Equivalent to:
134.1. __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
        Infer __def_98(key(X1,X2)) using __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
134.1.1. __def_102(X1) :- __def_102(X1), __def_103(X2).
          Because the following simpler clause holds:
134.1.1.1. __def_102(X1) :- __def_102(X1). is a tautology.
134.1.2. __def_103(X2) :- __def_102(X1), __def_103(X2).
          Because the following simpler clause holds:
134.1.2.1. __def_103(X2) :- __def_103(X2).: see 67.1.4.1.1.1.1.1.2.1.
. lemma 135:
135. __type_25(X1) :- __def_110 (X1,X2).
      __def_110 (X1,X2) must be by __def_110(X1,X2) :- knows_current(X1).
135.1. __type_25(X1) :- knows_current(X1).
        By induction on X1 satisfying knows_current, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
135.1.1. __type_25(dec(X1,X2)) :- knows_current(dec(X1,X2)).
          knows_current(dec(X1,X2)) must be by knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.1.1. __type_25(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_25(dec(X1,X2)) using __type_25(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.1.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
135.1.1.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
135.1.2. __type_25(s(X1)) :- knows_current(s(X1)).
          knows_current(s(X1)) must be by knows_current(s(X)) :- knows_current(X).
135.1.2.1. __type_25(s(X1)) :- knows_current(X1).
            Infer __type_25(s(X1)) using __type_25(s(X)) :- knows_current(X).
135.1.2.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
135.1.3. __type_25(nil) :- knows_current(nil).
          knows_current(nil) must be by knows_current(nil).
135.1.3.1. __type_25(nil).
            Infer __type_25(nil) using __type_25(nil).
135.1.4. __type_25(nonceb_old(X1,X2)) :- knows_current(nonceb_old(X1,X2)).
          knows_current(nonceb_old(X1,X2)) must be by knows_current(nonceb_old(X1,X2)).
135.1.4.1. __type_25(nonceb_old(X1,X2)).
            Infer __type_25(nonceb_old(X1,X2)) using __type_25(nonceb_old(X1,X2)).
135.1.5. __type_25(i) :- knows_current(i).
          knows_current(i) must be by knows_current(i).
135.1.5.1. __type_25(i).
            Infer __type_25(i) using __type_25(i).
135.1.6. __type_25(p(X1)) :- knows_current(p(X1)).
          knows_current(p(X1)) must be by knows_current(p(X)) :- knows_current(X).
135.1.6.1. __type_25(p(X1)) :- knows_current(X1).
            Infer __type_25(p(X1)) using __type_25(p(X)) :- knows_current(X).
135.1.6.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
135.1.7. __type_25(key(X1,X2)) :- knows_current(key(X1,X2)).
          Examine all ways of building knows_current(key(X1,X2)) in the body.
          The 3 possibilities are:
          knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
          knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
          knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
135.1.7.1. __type_25(key(X1,X2)) :- __def_51(X1), agent(X2).
            Infer __type_25(key(X1,X2)) using __type_25(key(X1,X2)) :- __def_51(X1), agent(X2).
135.1.7.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
135.1.7.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
135.1.7.2. __type_25(key(X1,X2)) :- __def_62(X1), __def_63(X2).
            Infer __type_25(key(X1,X2)) using __type_25(key(X1,X2)) :- __def_62(X1), __def_63(X2).
135.1.7.2.1. __def_62(X1) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.1.
135.1.7.2.2. __def_63(X2) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.2.
135.1.7.3. __type_25(key(X1,X2)) :- __def_12(X1), __def_13(X2).
            Infer __type_25(key(X1,X2)) using __type_25(key(X1,X2)) :- __def_12(X1), __def_13(X2).
135.1.7.3.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
135.1.7.3.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
135.1.8. __type_25(cons(X1,X2)) :- knows_current(cons(X1,X2)).
          knows_current(cons(X1,X2)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.8.1. __type_25(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_25(cons(X1,X2)) using __type_25(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.8.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
135.1.8.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
135.1.9. __type_25(crypt(X1,X2)) :- knows_current(crypt(X1,X2)).
          Examine all ways of building knows_current(crypt(X1,X2)) in the body.
          The 9 possibilities are:
          knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
          knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
          knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
          knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
          knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
          knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
          knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
          knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
          knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.9.1. __type_25(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
135.1.9.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.1.
135.1.9.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.2.
135.1.9.2. __type_25(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
135.1.9.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
135.1.9.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
135.1.9.3. __type_25(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
135.1.9.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
135.1.9.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
135.1.9.4. __type_25(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
135.1.9.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
135.1.9.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
135.1.9.5. __type_25(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
135.1.9.5.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
135.1.9.5.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
135.1.9.6. __type_25(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
135.1.9.6.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
135.1.9.6.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
135.1.9.7. __type_25(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
135.1.9.7.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
135.1.9.7.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
135.1.9.8. __type_25(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
135.1.9.8.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
135.1.9.8.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
135.1.9.9. __type_25(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
            Infer __type_25(crypt(X1,X2)) using __type_25(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.9.9.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
135.1.9.9.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
135.1.10. __type_25(noncea_old(X1,X2)) :- knows_current(noncea_old(X1,X2)).
           knows_current(noncea_old(X1,X2)) must be by knows_current(noncea_old(X1,X2)).
135.1.10.1. __type_25(noncea_old(X1,X2)).
             Infer __type_25(noncea_old(X1,X2)) using __type_25(noncea_old(X1,X2)).
135.1.11. __type_25(alice) :- knows_current(alice).
           knows_current(alice) must be by knows_current(alice).
135.1.11.1. __type_25(alice).
             Infer __type_25(alice) using __type_25(alice).
135.1.12. __type_25(enc(X1,X2)) :- knows_current(enc(X1,X2)).
           Examine all ways of building knows_current(enc(X1,X2)) in the body.
           The 4 possibilities are:
           knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
           knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
           knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
           knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
135.1.12.1. __type_25(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
             Infer __type_25(enc(X1,X2)) using __type_25(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
135.1.12.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
135.1.12.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
135.1.12.2. __type_25(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
             Infer __type_25(enc(X1,X2)) using __type_25(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
135.1.12.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
135.1.12.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
135.1.12.3. __type_25(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
             Infer __type_25(enc(X1,X2)) using __type_25(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
135.1.12.3.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
135.1.12.3.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
135.1.12.4. __type_25(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
             Infer __type_25(enc(X1,X2)) using __type_25(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
135.1.12.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
135.1.12.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
135.1.13. __type_25(bob) :- knows_current(bob).
           knows_current(bob) must be by knows_current(bob).
135.1.13.1. __type_25(bob).
             Infer __type_25(bob) using __type_25(bob).
135.1.14. __type_25(server) :- knows_current(server).
           knows_current(server) must be by knows_current(server).
135.1.14.1. __type_25(server).
             Infer __type_25(server) using __type_25(server).
135.1.15. __type_25(passwd_old(X1,X2)) :- knows_current(passwd_old(X1,X2)).
           knows_current(passwd_old(X1,X2)) must be by knows_current(passwd_old(X1,X2)).
135.1.15.1. __type_25(passwd_old(X1,X2)).
             Infer __type_25(passwd_old(X1,X2)) using __type_25(passwd_old(X1,X2)).
. lemma 136:
136. __def_119(pub).
      Infer __def_119(pub) using __def_119(pub).
. lemma 137:
137. __def_38(cons(X1,X2)) :- __def_40(X2), __def_39(X1).
      Equivalent to:
137.1. __def_38(cons(X1,X2)) :- __def_39(X1), __def_40(X2).
        Infer __def_38(cons(X1,X2)) using __def_38(cons(X1,X2)) :- __def_39(X1), __def_40(X2).
137.1.1. __def_39(X1) :- __def_39(X1), __def_40(X2).
          Because the following simpler clause holds:
137.1.1.1. __def_39(X1) :- __def_39(X1). is a tautology.
137.1.2. __def_40(X2) :- __def_39(X1), __def_40(X2).
          Because the following simpler clause holds:
137.1.2.1. __def_40(X2) :- __def_40(X2). is a tautology.
. lemma 138:
138. __type_8(X1) :- __def_43 (X2,X1).
      __def_43 (X2,X1) must be by __def_43(X1,X2) :- __def_39(X1), __def_42(X2), __def_17(X2).
138.1. __type_8(X1) :- __def_39(X2), __def_42(X1), __def_17(X1).
        Equivalent to:
138.1.1. __type_8(X1) :- __def_17(X1), __def_39(X2), __def_42(X1).
          Because the following simpler clause holds:
138.1.1.1. __type_8(X1) :- __def_17(X1).
            By induction on X1 satisfying __def_17, must start with r_old.
138.1.1.1.1. __type_8(r_old(X1,X2)) :- __def_17(r_old(X1,X2)).
              __def_17(r_old(X1,X2)) must be by __def_17(r_old(X1,X2)) :- knows_old(X1).
138.1.1.1.1.1. __type_8(r_old(X1,X2)) :- knows_old(X1).
                Infer __type_8(r_old(X1,X2)) using __type_8(r_old(X1,X2)) :- knows_old(X1).
138.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 139:
139. __def_100(nonceb_current(X1,X2)) :- __def_96 (X1,X3,X2).
      Examine all ways of building __def_96 (X1,X3,X2) in the body.
      The 3 possibilities are:
      __def_96(X1,X2,X3) :- knows_current(X1), __def_85(X2).
      __def_96(X1,X2,X3) :- knows_current(X1), __def_97(X2).
      __def_96(X1,X2,X3) :- knows_current(X1), __type_22(X2).
139.1. __def_100(nonceb_current(X1,X2)) :- knows_current(X1), __def_85(X3).
        Equivalent to:
139.1.1. __def_100(nonceb_current(X1,X2)) :- __def_85(X3), knows_current(X1).
          Infer __def_100(nonceb_current(X1,X2)) using __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
139.1.1.1. knows_current(X1) :- __def_85(X3), knows_current(X1).: see 16.1.1.1.
139.2. __def_100(nonceb_current(X1,X2)) :- knows_current(X1), __def_97(X3).
        Equivalent to:
139.2.1. __def_100(nonceb_current(X1,X2)) :- __def_97(X3), knows_current(X1).
          Infer __def_100(nonceb_current(X1,X2)) using __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
139.2.1.1. knows_current(X1) :- __def_97(X3), knows_current(X1).: see 16.2.1.1.
139.3. __def_100(nonceb_current(X1,X2)) :- knows_current(X1), __type_22(X3).
        Equivalent to:
139.3.1. __def_100(nonceb_current(X1,X2)) :- __type_22(X3), knows_current(X1).
          Infer __def_100(nonceb_current(X1,X2)) using __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
139.3.1.1. knows_current(X1) :- __type_22(X3), knows_current(X1).: see 16.3.1.1.
. lemma 140:
140. __def_116(key(X1,X2)) :- __def_69(X2), __def_117(X1).
      Equivalent to:
140.1. __def_116(key(X1,X2)) :- __def_117(X1), __def_69(X2).
        for all X, in particular X=X1, __def_117(X) is equivalent to __def_26(X) \/ __def_33(X) \/ __def_45(X) \/ __def_87(X) \/ __def_121(X) \/ __def_41(X) \/ __def_61(X) \/ __def_102(X) \/ __def_106(X) \/ __def_94(X).
140.1.1. __def_116(key(X1,X2)) :- __def_26(X1), __def_69(X2).
          There is no way to infer __def_116(key(X1,X2)), so the body must be false.
140.1.1. #false() :- __def_26(X1), __def_69(X2).
          This is implied by:
140.1.1.1. #false() :- __def_69(X2).
            Equivalent to:
140.1.1.1.1. #false() :- __def_69(X1).
              This is implied by:
140.1.1.1.1.1. #false() :- __def_69(X1).
                By induction on X1 satisfying __def_69: none.
140.1.2. __def_116(key(X1,X2)) :- __def_33(X1), __def_69(X2).
          Special case of:
140.1.2.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.3. __def_116(key(X1,X2)) :- __def_45(X1), __def_69(X2).
          Special case of:
140.1.3.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.4. __def_116(key(X1,X2)) :- __def_87(X1), __def_69(X2).
          Equivalent to:
140.1.4.1. __def_116(key(X1,X2)) :- __def_69(X2), __def_87(X1).
            Special case of:
140.1.4.1.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.5. __def_116(key(X1,X2)) :- __def_121(X1), __def_69(X2).
          Special case of:
140.1.5.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.6. __def_116(key(X1,X2)) :- __def_41(X1), __def_69(X2).
          Special case of:
140.1.6.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.7. __def_116(key(X1,X2)) :- __def_61(X1), __def_69(X2).
          Special case of:
140.1.7.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.8. __def_116(key(X1,X2)) :- __def_102(X1), __def_69(X2).
          Special case of:
140.1.8.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.9. __def_116(key(X1,X2)) :- __def_106(X1), __def_69(X2).
          Special case of:
140.1.9.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
140.1.10. __def_116(key(X1,X2)) :- __def_94(X1), __def_69(X2).
           Equivalent to:
140.1.10.1. __def_116(key(X1,X2)) :- __def_69(X2), __def_94(X1).
             Special case of:
140.1.10.1.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
. lemma 141:
141. __def_101(nil).
      Infer __def_101(nil) using __def_101(nil).
. lemma 142:
142. __def_117(sym).
      Infer __def_117(sym) using __def_117(sym).
. lemma 143:
143. __def_51(pub).
      Infer __def_51(pub) using __def_51(pub).
. lemma 144:
144. __type_23(X1) :- __def_104 (X2,X1).
      __def_104 (X2,X1) must be by __def_104(X1,X2) :- __def_100(X1), __def_103(X2), __def_78(X2).
144.1. __type_23(X1) :- __def_100(X2), __def_103(X1), __def_78(X1).
        Because the following simpler clause holds:
144.1.1. __type_23(X1) :- __def_103(X1).
          By induction on X1 satisfying __def_103, must start with r_current.
144.1.1.1. __type_23(r_current(X1,X2)) :- __def_103(r_current(X1,X2)).
            __def_103(r_current(X1,X2)) must be by __def_103(r_current(X1,X2)) :- knows_current(X1).
144.1.1.1.1. __type_23(r_current(X1,X2)) :- knows_current(X1).
              Infer __type_23(r_current(X1,X2)) using __type_23(r_current(X1,X2)) :- knows_current(X1).
144.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 145:
145. __def_37(key(X1,X2)) :- __def_42(X2), __def_41(X1).
      Equivalent to:
145.1. __def_37(key(X1,X2)) :- __def_41(X1), __def_42(X2).
        Infer __def_37(key(X1,X2)) using __def_37(key(X1,X2)) :- __def_41(X1), __def_42(X2).
145.1.1. __def_41(X1) :- __def_41(X1), __def_42(X2).
          Because the following simpler clause holds:
145.1.1.1. __def_41(X1) :- __def_41(X1). is a tautology.
145.1.2. __def_42(X2) :- __def_41(X1), __def_42(X2).
          Because the following simpler clause holds:
145.1.2.1. __def_42(X2) :- __def_42(X2). is a tautology.
. lemma 146:
146. __def_106(sym).
      Infer __def_106(sym) using __def_106(sym).
. lemma 147:
147. __def_44(key(X1,X2)) :- __type_8(X2), __def_45(X1).
      Equivalent to:
147.1. __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
        Infer __def_44(key(X1,X2)) using __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
147.1.1. __def_45(X1) :- __def_45(X1), __type_8(X2).
          Because the following simpler clause holds:
147.1.1.1. __def_45(X1) :- __def_45(X1). is a tautology.
147.1.2. __type_8(X2) :- __def_45(X1), __type_8(X2).
          Because the following simpler clause holds:
147.1.2.1. __type_8(X2) :- __type_8(X2).: see 87.3.1.1.1.2.1.
. lemma 148:
148. __def_12(pub).
      Infer __def_12(pub) using __def_12(pub).
. lemma 149:
149. __def_54(key(X1,X2)) :- __def_4(X2), __def_55(X1).
      Infer __def_54(key(X1,X2)) using __def_54(key(X1,X2)) :- __def_55(X1), __def_4(X2).
149.1. __def_55(X1) :- __def_4(X2), __def_55(X1).
        Because the following simpler clause holds:
149.1.1. __def_55(X1) :- __def_55(X1). is a tautology.
149.2. __def_4(X2) :- __def_4(X2), __def_55(X1).
        Because the following simpler clause holds:
149.2.1. __def_4(X2) :- __def_4(X2). is a tautology.
. lemma 150:
150. __def_57(sym).
      Infer __def_57(sym) using __def_57(sym).
. lemma 151:
151. __def_14 (X1,X2,X3) :- knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X2)),nil))).
      knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X2)),nil))) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
151.1. __def_14 (X1,X2,X3) :- knows_old(X1), knows_old(cons(enc(X3,passwd_old(X1,X2)),nil)).
        knows_old(cons(enc(X3,passwd_old(X1,X2)),nil)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
151.1.1. __def_14 (X1,X2,X3) :- knows_old(enc(X3,passwd_old(X1,X2))), knows_old(nil), knows_old(X1).
          Equivalent to:
151.1.1.1. __def_14 (X1,X2,X3) :- knows_old(X1), knows_old(enc(X3,passwd_old(X1,X2))), knows_old(nil).
            This is implied by:
151.1.1.1.1. __def_14 (X1,X2,X3) :- knows_old(X1), knows_old(enc(X3,passwd_old(X1,X2))).
              Examine all ways of building knows_old(enc(X3,passwd_old(X1,X2))) in the body.
              The 4 possibilities are:
              knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
              knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
              knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
              knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
151.1.1.1.1.1. __def_14 (X1,X2,X3) :- __def_15(X3), __def_16(passwd_old(X1,X2)), knows_old(X1).
                Infer __def_14 (X1,X2,X3) using __def_14(X1,X2,X3) :- knows_old(X1), __def_15(X3).
151.1.1.1.1.1.1. knows_old(X1) :- __def_15(X3), __def_16(passwd_old(X1,X2)), knows_old(X1).
                  Because the following simpler clause holds:
151.1.1.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
151.1.1.1.1.1.2. __def_15(X3) :- __def_15(X3), __def_16(passwd_old(X1,X2)), knows_old(X1).
                  Because the following simpler clause holds:
151.1.1.1.1.1.2.1. __def_15(X3) :- __def_15(X3). is a tautology.
151.1.1.1.1.2. __def_14 (X1,X2,X3) :- __def_19(X3), __def_20(passwd_old(X1,X2)), knows_old(X1).
                Infer __def_14 (X1,X2,X3) using __def_14(X1,X2,X3) :- knows_old(X1), __def_19(X3).
151.1.1.1.1.2.1. knows_old(X1) :- __def_19(X3), __def_20(passwd_old(X1,X2)), knows_old(X1).
                  Because the following simpler clause holds:
151.1.1.1.1.2.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
151.1.1.1.1.2.2. __def_19(X3) :- __def_19(X3), __def_20(passwd_old(X1,X2)), knows_old(X1).
                  Because the following simpler clause holds:
151.1.1.1.1.2.2.1. __def_19(X3) :- __def_19(X3). is a tautology.
151.1.1.1.1.3. __def_14 (X1,X2,X3) :- __def_10(X3), __def_11(passwd_old(X1,X2)), knows_old(X1).
                __def_11(passwd_old(X1,X2)) must be by __def_11(passwd_old(X1,X2)) :- agent(X1), agent(X2).
151.1.1.1.1.3.1. __def_14 (X1,X2,X3) :- agent(X1), agent(X2), __def_10(X3), knows_old(X1).
                  Equivalent to:
151.1.1.1.1.3.1.1. __def_14 (X1,X2,X3) :- __def_10(X3), agent(X2), agent(X1), knows_old(X1).
                    Infer __def_14 (X1,X2,X3) using __def_14(X1,X2,X3) :- agent(X1), __type_1(X1), agent(X2), __def_10(X3).
151.1.1.1.1.3.1.1.1. agent(X1) :- __def_10(X3), agent(X2), agent(X1), knows_old(X1).
                      Because the following simpler clause holds:
151.1.1.1.1.3.1.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
151.1.1.1.1.3.1.1.2. __type_1(X1) :- __def_10(X3), agent(X2), agent(X1), knows_old(X1).
                      Because the following simpler clause holds:
151.1.1.1.1.3.1.1.2.1. __type_1(X1) :- agent(X1).: see 6.3.1.1.1.1.1.1.1.1.2.1.
151.1.1.1.1.3.1.1.3. agent(X2) :- __def_10(X3), agent(X2), agent(X1), knows_old(X1).
                      Because the following simpler clause holds:
151.1.1.1.1.3.1.1.3.1. agent(X2) :- agent(X2).: see 3.1.1.1.1.2.1.
151.1.1.1.1.3.1.1.4. __def_10(X3) :- __def_10(X3), agent(X2), agent(X1), knows_old(X1).
                      Because the following simpler clause holds:
151.1.1.1.1.3.1.1.4.1. __def_10(X3) :- __def_10(X3). is a tautology.
151.1.1.1.1.4. __def_14 (X1,X2,X3) :- knows_old(X3), knows_old(passwd_old(X1,X2)), knows_old(X1).
                Equivalent to:
151.1.1.1.1.4.1. __def_14 (X1,X2,X3) :- knows_old(X3), knows_old(X1), knows_old(passwd_old(X1,X2)).
                  knows_old(passwd_old(X1,X2)) is impossible.
. lemma 152:
152. __def_88 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))).
      Equivalent to:
152.1. __def_88 (X1,X2,X3) :- knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).
        knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
152.1.1. __def_88 (X1,X2,X3) :- knows_current(X1), knows_current(cons(enc(X4,passwd_current(X1,X3)),nil)), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).
          knows_current(cons(enc(X4,passwd_current(X1,X3)),nil)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
152.1.1.1. __def_88 (X1,X2,X3) :- knows_current(enc(X4,passwd_current(X1,X3))), knows_current(nil), knows_current(X1), knows_current(crypt(X2,key(sym,r_current(X1,X3)))).
            Equivalent to:
152.1.1.1.1. __def_88 (X1,X2,X3) :- knows_current(X1), knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(enc(X4,passwd_current(X1,X3))), knows_current(nil).
              This is implied by:
152.1.1.1.1.1. __def_88 (X1,X2,X3) :- knows_current(X1), knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(enc(X4,passwd_current(X1,X3))).
                Examine all ways of building knows_current(crypt(X2,key(sym,r_current(X1,X3)))) in the body.
                The 8 possibilities are:
                knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
                knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
                knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
                knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
152.1.1.1.1.1.1. __def_88 (X1,X2,X3) :- __type_22(X2), __def_105(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  Equivalent to:
152.1.1.1.1.1.1.1. __def_88 (X1,X2,X3) :- __def_105(key(sym,r_current(X1,X3))), __type_22(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Infer __def_88 (X1,X2,X3) using __def_88(X1,X2,X3) :- knows_current(X1), __type_22(X2).
152.1.1.1.1.1.1.1.1. knows_current(X1) :- __def_105(key(sym,r_current(X1,X3))), __type_22(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                      Because the following simpler clause holds:
152.1.1.1.1.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
152.1.1.1.1.1.1.1.2. __type_22(X2) :- __def_105(key(sym,r_current(X1,X3))), __type_22(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                      Because the following simpler clause holds:
152.1.1.1.1.1.1.1.2.1. __type_22(X2) :- __type_22(X2).: see 49.1.1.1.1.1.2.1.
152.1.1.1.1.1.2. __def_88 (X1,X2,X3) :- __def_28(X2), __def_29(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  __def_29(key(sym,r_current(X1,X3))) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
152.1.1.1.1.1.2.1. __def_88 (X1,X2,X3) :- __def_33(sym), __def_34(r_current(X1,X3)), __def_28(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Equivalent to:
152.1.1.1.1.1.2.1.1. __def_88 (X1,X2,X3) :- __def_28(X2), __def_33(sym), __def_34(r_current(X1,X3)), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                      This is implied by:
152.1.1.1.1.1.2.1.1.1. __def_88 (X1,X2,X3) :- __def_28(X2), __def_34(r_current(X1,X3)), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                        __def_34(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.3. __def_88 (X1,X2,X3) :- __def_85(X2), __def_86(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  Infer __def_88 (X1,X2,X3) using __def_88(X1,X2,X3) :- knows_current(X1), __def_85(X2).
152.1.1.1.1.1.3.1. knows_current(X1) :- __def_85(X2), __def_86(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Because the following simpler clause holds:
152.1.1.1.1.1.3.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
152.1.1.1.1.1.3.2. __def_85(X2) :- __def_85(X2), __def_86(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Because the following simpler clause holds:
152.1.1.1.1.1.3.2.1. __def_85(X2) :- __def_85(X2).: see 49.1.1.1.3.2.1.
152.1.1.1.1.1.4. __def_88 (X1,X2,X3) :- __def_17(X2), __type_2(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  __type_2(key(sym,r_current(X1,X3))) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
152.1.1.1.1.1.4.1. __def_88 (X1,X2,X3) :- __def_12(sym), __def_13(r_current(X1,X3)), __def_17(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    This is implied by:
152.1.1.1.1.1.4.1.1. __def_88 (X1,X2,X3) :- __def_13(r_current(X1,X3)), __def_17(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                      __def_13(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.5. __def_88 (X1,X2,X3) :- __def_24(X2), __def_25(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  __def_25(key(sym,r_current(X1,X3))) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
152.1.1.1.1.1.5.1. __def_88 (X1,X2,X3) :- __def_26(sym), __type_4(r_current(X1,X3)), __def_24(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Equivalent to:
152.1.1.1.1.1.5.1.1. __def_88 (X1,X2,X3) :- __def_24(X2), __def_26(sym), __type_4(r_current(X1,X3)), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                      This is implied by:
152.1.1.1.1.1.5.1.1.1. __def_88 (X1,X2,X3) :- __def_24(X2), __type_4(r_current(X1,X3)), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                        __type_4(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.6. __def_88 (X1,X2,X3) :- __type_7(X2), __def_44(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  Equivalent to:
152.1.1.1.1.1.6.1. __def_88 (X1,X2,X3) :- __def_44(key(sym,r_current(X1,X3))), __type_7(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    __def_44(key(sym,r_current(X1,X3))) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
152.1.1.1.1.1.6.1.1. __def_88 (X1,X2,X3) :- __def_45(sym), __type_8(r_current(X1,X3)), __type_7(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                      Equivalent to:
152.1.1.1.1.1.6.1.1.1. __def_88 (X1,X2,X3) :- __def_45(sym), __type_7(X2), __type_8(r_current(X1,X3)), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                        This is implied by:
152.1.1.1.1.1.6.1.1.1.1. __def_88 (X1,X2,X3) :- __type_7(X2), __type_8(r_current(X1,X3)), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                          __type_8(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.7. __def_88 (X1,X2,X3) :- __def_97(X2), __def_98(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  Infer __def_88 (X1,X2,X3) using __def_88(X1,X2,X3) :- knows_current(X1), __def_97(X2).
152.1.1.1.1.1.7.1. knows_current(X1) :- __def_97(X2), __def_98(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Because the following simpler clause holds:
152.1.1.1.1.1.7.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
152.1.1.1.1.1.7.2. __def_97(X2) :- __def_97(X2), __def_98(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                    Because the following simpler clause holds:
152.1.1.1.1.1.7.2.1. __def_97(X2) :- __def_97(X2).: see 49.1.1.1.7.2.1.
152.1.1.1.1.1.8. __def_88 (X1,X2,X3) :- knows_current(X2), knows_current(key(sym,r_current(X1,X3))), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))).
                  Equivalent to:
152.1.1.1.1.1.8.1. __def_88 (X1,X2,X3) :- knows_current(X2), knows_current(X1), knows_current(enc(X4,passwd_current(X1,X3))), knows_current(key(sym,r_current(X1,X3))).
                    Examine all ways of building knows_current(enc(X4,passwd_current(X1,X3))) in the body.
                    The 4 possibilities are:
                    knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
                    knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
                    knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
                    knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
152.1.1.1.1.1.8.1.1. __def_88 (X1,X2,X3) :- __def_72(X4), __def_73(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                      This is implied by:
152.1.1.1.1.1.8.1.1.1. __def_88 (X1,X2,X3) :- __def_73(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                        __def_73(passwd_current(X1,X3)) must be by __def_73(passwd_current(X1,X2)) :- agent(X1), agent(X2).
152.1.1.1.1.1.8.1.1.1.1. __def_88 (X1,X2,X3) :- agent(X1), agent(X3), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                          Equivalent to:
152.1.1.1.1.1.8.1.1.1.1.1. __def_88 (X1,X2,X3) :- agent(X3), agent(X1), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                            Examine all ways of building knows_current(key(sym,r_current(X1,X3))) in the body.
                            The 3 possibilities are:
                            knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                            knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                            knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
152.1.1.1.1.1.8.1.1.1.1.1.1. __def_88 (X1,X2,X3) :- __def_51(sym), agent(r_current(X1,X3)), agent(X3), agent(X1), knows_current(X2), knows_current(X1).
                              Equivalent to:
152.1.1.1.1.1.8.1.1.1.1.1.1.1. __def_88 (X1,X2,X3) :- __def_51(sym), agent(X3), agent(X1), agent(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                                This is implied by:
152.1.1.1.1.1.8.1.1.1.1.1.1.1.1. __def_88 (X1,X2,X3) :- agent(X3), agent(X1), agent(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                                  agent(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.1.1.1.1.2. __def_88 (X1,X2,X3) :- __def_62(sym), __def_63(r_current(X1,X3)), agent(X3), agent(X1), knows_current(X2), knows_current(X1).
                              This is implied by:
152.1.1.1.1.1.8.1.1.1.1.1.2.1. __def_88 (X1,X2,X3) :- __def_63(r_current(X1,X3)), agent(X3), agent(X1), knows_current(X2), knows_current(X1).
                                __def_63(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.1.1.1.1.3. __def_88 (X1,X2,X3) :- __def_12(sym), __def_13(r_current(X1,X3)), agent(X3), agent(X1), knows_current(X2), knows_current(X1).
                              This is implied by:
152.1.1.1.1.1.8.1.1.1.1.1.3.1. __def_88 (X1,X2,X3) :- __def_13(r_current(X1,X3)), agent(X3), agent(X1), knows_current(X2), knows_current(X1).
                                __def_13(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.2. __def_88 (X1,X2,X3) :- __def_80(X4), __def_81(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                      This is implied by:
152.1.1.1.1.1.8.1.2.1. __def_88 (X1,X2,X3) :- __def_81(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                        __def_81(passwd_current(X1,X3)) must be by __def_81(passwd_current(X1,X2)) :- knows_current(X1).
152.1.1.1.1.1.8.1.2.1.1. __def_88 (X1,X2,X3) :- knows_current(X1), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                          Equivalent to:
152.1.1.1.1.1.8.1.2.1.1.1. __def_88 (X1,X2,X3) :- knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                            Examine all ways of building knows_current(key(sym,r_current(X1,X3))) in the body.
                            The 3 possibilities are:
                            knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                            knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                            knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
152.1.1.1.1.1.8.1.2.1.1.1.1. __def_88 (X1,X2,X3) :- __def_51(sym), agent(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                              This is implied by:
152.1.1.1.1.1.8.1.2.1.1.1.1.1. __def_88 (X1,X2,X3) :- agent(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                                agent(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.2.1.1.1.2. __def_88 (X1,X2,X3) :- __def_62(sym), __def_63(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                              This is implied by:
152.1.1.1.1.1.8.1.2.1.1.1.2.1. __def_88 (X1,X2,X3) :- __def_63(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                                __def_63(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.2.1.1.1.3. __def_88 (X1,X2,X3) :- __def_12(sym), __def_13(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                              This is implied by:
152.1.1.1.1.1.8.1.2.1.1.1.3.1. __def_88 (X1,X2,X3) :- __def_13(r_current(X1,X3)), knows_current(X2), knows_current(X1).
                                __def_13(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.3. __def_88 (X1,X2,X3) :- knows_current(X4), knows_current(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                      Equivalent to:
152.1.1.1.1.1.8.1.3.1. __def_88 (X1,X2,X3) :- knows_current(X2), knows_current(X1), knows_current(X4), knows_current(key(sym,r_current(X1,X3))), knows_current(passwd_current(X1,X3)).
                        This is implied by:
152.1.1.1.1.1.8.1.3.1.1. __def_88 (X1,X2,X3) :- knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))), knows_current(passwd_current(X1,X3)).
                          Examine all ways of building knows_current(key(sym,r_current(X1,X3))) in the body.
                          The 3 possibilities are:
                          knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                          knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                          knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
152.1.1.1.1.1.8.1.3.1.1.1. __def_88 (X1,X2,X3) :- __def_51(sym), agent(r_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(passwd_current(X1,X3)).
                            This is implied by:
152.1.1.1.1.1.8.1.3.1.1.1.1. __def_88 (X1,X2,X3) :- agent(r_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(passwd_current(X1,X3)).
                              agent(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.3.1.1.2. __def_88 (X1,X2,X3) :- __def_62(sym), __def_63(r_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(passwd_current(X1,X3)).
                            This is implied by:
152.1.1.1.1.1.8.1.3.1.1.2.1. __def_88 (X1,X2,X3) :- __def_63(r_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(passwd_current(X1,X3)).
                              __def_63(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.3.1.1.3. __def_88 (X1,X2,X3) :- __def_12(sym), __def_13(r_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(passwd_current(X1,X3)).
                            This is implied by:
152.1.1.1.1.1.8.1.3.1.1.3.1. __def_88 (X1,X2,X3) :- __def_13(r_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(passwd_current(X1,X3)).
                              __def_13(r_current(X1,X3)) is impossible.
152.1.1.1.1.1.8.1.4. __def_88 (X1,X2,X3) :- __def_76(X4), __def_77(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                      This is implied by:
152.1.1.1.1.1.8.1.4.1. __def_88 (X1,X2,X3) :- __def_77(passwd_current(X1,X3)), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).
                        __def_77(passwd_current(X1,X3)) must be by __def_77(passwd_current(X1,X2)) :- knows_current(X1).
152.1.1.1.1.1.8.1.4.1.1. __def_88 (X1,X2,X3) :- knows_current(X1), knows_current(X2), knows_current(X1), knows_current(key(sym,r_current(X1,X3))).: see 152.1.1.1.1.1.8.1.2.1.1.
. lemma 153:153. agent(server).: see 18.1.1.1.1.4.1.
. lemma 154:154. testable_current(enc(X1,X2)) :- knows_current(X2), testable_current(X1).
      Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
154.1. testable_current(X1) :- knows_current(X2), testable_current(X1).
        Because the following simpler clause holds:
154.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
154.2. knows_current(X2) :- knows_current(X2), testable_current(X1).
        Because the following simpler clause holds:
154.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
. lemma 155:155. knows_current(crypt(X1,X2)) :- __def_98(X2), __def_97(X1).
      Equivalent to:
155.1. knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
        Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
155.1.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
155.1.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
. lemma 156:156. testable_old(key(X1,X2)) :- __type_15(X2), __def_59(X1).
      Equivalent to:
156.1. testable_old(key(X1,X2)) :- __def_59(X1), __type_15(X2).
        Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
156.1.1. __def_51(X1) :- __def_59(X1), __type_15(X2).
          Because the following simpler clause holds:
156.1.1.1. __def_51(X1) :- __def_59(X1).
            By induction on X1 satisfying __def_59, must start with pub.
156.1.1.1.1. __def_51(pub) :- __def_59(pub).
              __def_59(pub) must be by __def_59(pub).
156.1.1.1.1.1. __def_51(pub).: see 143.
156.1.2. agent(X2) :- __def_59(X1), __type_15(X2).
          Because the following simpler clause holds:
156.1.2.1. agent(X1) :- __type_15(X1).
            By induction on X2 satisfying __type_15, must start with i.
156.1.2.1.1. agent(i) :- __type_15(i).
              __type_15(i) must be by __type_15(i).
156.1.2.1.1.1. agent(i).: see 18.1.1.1.1.1.1.
. lemma 157:157. knows_current(crypt(X1,X2)) :- __def_86(X2), __def_85(X1).
      Equivalent to:
157.1. knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
        Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
157.1.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
157.1.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
. lemma 158:158. testable_old(crypt(X1,X2)) :- __def_52(X2), __type_11(X1).
      Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
158.1. __type_11(X1) :- __def_52(X2), __type_11(X1).
        Because the following simpler clause holds:
158.1.1. __type_11(X1) :- __type_11(X1).: see 7.8.6.1.1.
158.2. __def_52(X2) :- __def_52(X2), __type_11(X1).
        Because the following simpler clause holds:
158.2.1. __def_52(X2) :- __def_52(X2).: see 7.8.6.2.1.
. lemma 159:159. testable_old(X1) :- testable_old(p(X1)).
      testable_old(p(X1)) must be by testable_old(p(X)) :- testable_old(X).
159.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
. lemma 160:160. knows_current(nonceb_old(X1,X2)).
      Infer knows_current(nonceb_old(X1,X2)) using knows_current(nonceb_old(X1,X2)).
. lemma 161:161. testable_old(cons(X1,X2)) :- testable_old(X2).
      Infer testable_old(cons(X1,X2)) using testable_old(cons(X1,X2)) :- testable_old(X2).
161.1. testable_old(X2) :- testable_old(X2).: see 7.7.2.1.
. lemma 162:162. knows_current(X1) :- knows_current(cons(X2,X1)).
      knows_current(cons(X2,X1)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
162.1. knows_current(X1) :- knows_current(X2), knows_current(X1).
        Because the following simpler clause holds:
162.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 163:163. testable_current(X1) :- testable_current(s(X1)).
      testable_current(s(X1)) must be by testable_current(s(X)) :- testable_current(X).
163.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
. lemma 164:164. knows_old(key(X1,X2)) :- __def_63(X2), __def_62(X1).
      Equivalent to:
164.1. knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
        Infer knows_old(key(X1,X2)) using knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
164.1.1. __def_62(X1) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.1.
164.1.2. __def_63(X2) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.2.
. lemma 165:165. knows_current(key(X1,X2)) :- __def_63(X2), __def_62(X1).
      Equivalent to:
165.1. knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
        Infer knows_current(key(X1,X2)) using knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
165.1.1. __def_62(X1) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.1.
165.1.2. __def_63(X2) :- __def_62(X1), __def_63(X2).: see 44.1.1.7.2.2.
. lemma 166:166. testable_current(X1) :- knows_current(enc(X2,X1)), testable_current(X2).
      Examine all ways of building knows_current(enc(X2,X1)) in the body.
      The 4 possibilities are:
      knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
      knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
      knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
      knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
166.1. testable_current(X1) :- __def_72(X2), __def_73(X1), testable_current(X2).
        Special case of:
166.1.1. #false() :- __def_72(X1), testable_current(X1).
          By induction on X1 satisfying __def_72, must start with key.
166.1.1.1. #false() :- __def_72(key(X1,X2)), testable_current(key(X1,X2)).
            __def_72(key(X1,X2)) must be by __def_72(key(X1,X2)) :- __def_12(X1), __def_74(X2).
166.1.1.1.1. #false() :- testable_current(key(X1,X2)), __def_12(X1), __def_74(X2).
              Examine all ways of building testable_current(key(X1,X2)) in the body.
              The 4 possibilities are:
              testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
              testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
              testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
              testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
166.1.1.1.1.1. #false() :- __def_74(X2), agent(X2), __def_51(X1), __def_12(X1).
                This is implied by:
166.1.1.1.1.1.1. #false() :- __def_74(X2), agent(X2).
                  Without any induction hypothesis:
166.1.1.1.1.1.1.1. #false() :- __def_74(X1), agent(X1).
                    By induction on X2 satisfying __def_74, must start with session_current.
166.1.1.1.1.1.1.1.1. #false() :- __def_74(session_current(X1,X2)), agent(session_current(X1,X2)).
                      __def_74(session_current(X1,X2)) is impossible.
166.1.1.1.1.2. #false() :- __def_74(X2), __def_121(X1), __type_31(X2), __def_12(X1).
                This is implied by:
166.1.1.1.1.2.1. #false() :- __def_12(X1), __def_121(X1).
                  Without any induction hypothesis:
166.1.1.1.1.2.1.1. #false() :- __def_12(X1), __def_121(X1).
                    By induction on X1 satisfying __def_12, must start with pub.
166.1.1.1.1.2.1.1.1. #false() :- __def_12(pub), __def_121(pub).
                      __def_12(pub) is impossible.
166.1.1.1.1.3. #false() :- __def_74(X2), __def_118(X1), __type_29(X2), __def_12(X1).
                This is implied by:
166.1.1.1.1.3.1. #false() :- __def_12(X1), __def_118(X1).
                  Without any induction hypothesis:
166.1.1.1.1.3.1.1. #false() :- __def_12(X1), __def_118(X1).
                    By induction on X1 satisfying __def_12, must start with pub.
166.1.1.1.1.3.1.1.1. #false() :- __def_12(pub), __def_118(pub).
                      __def_12(pub) is impossible.
166.1.1.1.1.4. #false() :- __def_74(X2), __def_13(X2), __def_12(X1).
                This is implied by:
166.1.1.1.1.4.1. #false() :- __def_74(X2), __def_13(X2).
                  Without any induction hypothesis:
166.1.1.1.1.4.1.1. #false() :- __def_74(X1), __def_13(X1).
                    By induction on X2 satisfying __def_74, must start with session_current.
166.1.1.1.1.4.1.1.1. #false() :- __def_74(session_current(X1,X2)), __def_13(session_current(X1,X2)).
                      __def_74(session_current(X1,X2)) is impossible.
166.2. testable_current(X1) :- __def_80(X2), __def_81(X1), testable_current(X2).
        Special case of:
166.2.1. #false() :- __def_80(X1), testable_current(X1).
          By induction on X1 satisfying __def_80, must start with crypt.
166.2.1.1. #false() :- __def_80(crypt(X1,X2)), testable_current(crypt(X1,X2)).
            __def_80(crypt(X1,X2)) must be by __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
166.2.1.1.1. #false() :- testable_current(crypt(X1,X2)), __def_82(X1), __def_83(X2).
              Examine all ways of building testable_current(crypt(X1,X2)) in the body.
              The 11 possibilities are:
              testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
              testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
              testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
              testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
              testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
              testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
              testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
              testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
166.2.1.1.1.1. #false() :- __def_105(X2), __type_22(X1), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.1.1. #false() :- __def_82(X1), __type_22(X1).
                  Without any induction hypothesis:
166.2.1.1.1.1.1.1. #false() :- __def_82(X1), __type_22(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.1.1.1.1. #false() :- __def_82(r_current(X1,X2)), __type_22(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.2. #false() :- __def_28(X1), __def_29(X2), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.2.1. #false() :- __def_82(X1), __def_28(X1).
                  Without any induction hypothesis:
166.2.1.1.1.2.1.1. #false() :- __def_82(X1), __def_28(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.2.1.1.1. #false() :- __def_82(r_current(X1,X2)), __def_28(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.3. #false() :- __def_85(X1), __def_86(X2), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.3.1. #false() :- __def_82(X1), __def_85(X1).
                  Without any induction hypothesis:
166.2.1.1.1.3.1.1. #false() :- __def_82(X1), __def_85(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.3.1.1.1. #false() :- __def_82(r_current(X1,X2)), __def_85(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.4. #false() :- __def_22(X2), __def_21(X1), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.4.1. #false() :- __def_82(X1), __def_21(X1).
                  Without any induction hypothesis:
166.2.1.1.1.4.1.1. #false() :- __def_82(X1), __def_21(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.4.1.1.1. #false() :- __def_82(r_current(X1,X2)), __def_21(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.5. #false() :- __def_114(X2), __type_27(X1), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.5.1. #false() :- __type_27(X1), __def_82(X1).
                  Without any induction hypothesis:
166.2.1.1.1.5.1.1. #false() :- __type_27(X1), __def_82(X1).
                    By induction on X1 satisfying __type_27, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
166.2.1.1.1.5.1.1.1. #false() :- __type_27(dec(X1,X2)), __def_82(dec(X1,X2)).
                      __type_27(dec(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.2. #false() :- __type_27(s(X1)), __def_82(s(X1)).
                      __type_27(s(X1)) is impossible.
166.2.1.1.1.5.1.1.3. #false() :- __type_27(nil), __def_82(nil).
                      __type_27(nil) is impossible.
166.2.1.1.1.5.1.1.4. #false() :- __type_27(nonceb_old(X1,X2)), __def_82(nonceb_old(X1,X2)).
                      __type_27(nonceb_old(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.5. #false() :- __type_27(i), __def_82(i).
                      __type_27(i) is impossible.
166.2.1.1.1.5.1.1.6. #false() :- __type_27(r_old(X1,X2)), __def_82(r_old(X1,X2)).
                      __type_27(r_old(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.7. #false() :- __type_27(p(X1)), __def_82(p(X1)).
                      __type_27(p(X1)) is impossible.
166.2.1.1.1.5.1.1.8. #false() :- __type_27(key(X1,X2)), __def_82(key(X1,X2)).
                      __type_27(key(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.9. #false() :- __type_27(cons(X1,X2)), __def_82(cons(X1,X2)).
                      __type_27(cons(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.10. #false() :- __type_27(crypt(X1,X2)), __def_82(crypt(X1,X2)).
                       __type_27(crypt(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.11. #false() :- __type_27(noncea_old(X1,X2)), __def_82(noncea_old(X1,X2)).
                       __type_27(noncea_old(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.12. #false() :- __type_27(alice), __def_82(alice).
                       __type_27(alice) is impossible.
166.2.1.1.1.5.1.1.13. #false() :- __type_27(enc(X1,X2)), __def_82(enc(X1,X2)).
                       __type_27(enc(X1,X2)) is impossible.
166.2.1.1.1.5.1.1.14. #false() :- __type_27(bob), __def_82(bob).
                       __type_27(bob) is impossible.
166.2.1.1.1.5.1.1.15. #false() :- __type_27(server), __def_82(server).
                       __type_27(server) is impossible.
166.2.1.1.1.5.1.1.16. #false() :- __type_27(passwd_old(X1,X2)), __def_82(passwd_old(X1,X2)).
                       __type_27(passwd_old(X1,X2)) is impossible.
166.2.1.1.1.6. #false() :- __def_17(X1), __type_2(X2), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.6.1. #false() :- __def_82(X1), __def_17(X1).
                  Without any induction hypothesis:
166.2.1.1.1.6.1.1. #false() :- __def_82(X1), __def_17(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.6.1.1.1. #false() :- __def_82(r_current(X1,X2)), __def_17(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.7. #false() :- __type_26(X1), __def_112(X2), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.7.1. #false() :- __type_26(X1), __def_82(X1).
                  Without any induction hypothesis:
166.2.1.1.1.7.1.1. #false() :- __type_26(X1), __def_82(X1).
                    By induction on X1 satisfying __type_26, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
166.2.1.1.1.7.1.1.1. #false() :- __type_26(dec(X1,X2)), __def_82(dec(X1,X2)).
                      __type_26(dec(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.2. #false() :- __type_26(s(X1)), __def_82(s(X1)).
                      __type_26(s(X1)) is impossible.
166.2.1.1.1.7.1.1.3. #false() :- __type_26(nil), __def_82(nil).
                      __type_26(nil) is impossible.
166.2.1.1.1.7.1.1.4. #false() :- __type_26(nonceb_old(X1,X2)), __def_82(nonceb_old(X1,X2)).
                      __type_26(nonceb_old(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.5. #false() :- __type_26(i), __def_82(i).
                      __type_26(i) is impossible.
166.2.1.1.1.7.1.1.6. #false() :- __type_26(r_old(X1,X2)), __def_82(r_old(X1,X2)).
                      __type_26(r_old(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.7. #false() :- __type_26(p(X1)), __def_82(p(X1)).
                      __type_26(p(X1)) is impossible.
166.2.1.1.1.7.1.1.8. #false() :- __type_26(key(X1,X2)), __def_82(key(X1,X2)).
                      __type_26(key(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.9. #false() :- __type_26(cons(X1,X2)), __def_82(cons(X1,X2)).
                      __type_26(cons(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.10. #false() :- __type_26(crypt(X1,X2)), __def_82(crypt(X1,X2)).
                       __type_26(crypt(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.11. #false() :- __type_26(noncea_old(X1,X2)), __def_82(noncea_old(X1,X2)).
                       __type_26(noncea_old(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.12. #false() :- __type_26(alice), __def_82(alice).
                       __type_26(alice) is impossible.
166.2.1.1.1.7.1.1.13. #false() :- __type_26(enc(X1,X2)), __def_82(enc(X1,X2)).
                       __type_26(enc(X1,X2)) is impossible.
166.2.1.1.1.7.1.1.14. #false() :- __type_26(bob), __def_82(bob).
                       __type_26(bob) is impossible.
166.2.1.1.1.7.1.1.15. #false() :- __type_26(server), __def_82(server).
                       __type_26(server) is impossible.
166.2.1.1.1.7.1.1.16. #false() :- __type_26(passwd_old(X1,X2)), __def_82(passwd_old(X1,X2)).
                       __type_26(passwd_old(X1,X2)) is impossible.
166.2.1.1.1.8. #false() :- __def_24(X1), __def_25(X2), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.8.1. #false() :- __def_82(X1), __def_24(X1).
                  Without any induction hypothesis:
166.2.1.1.1.8.1.1. #false() :- __def_82(X1), __def_24(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.8.1.1.1. #false() :- __def_82(r_current(X1,X2)), __def_24(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.9. #false() :- __def_44(X2), __type_7(X1), __def_83(X2), __def_82(X1).
                This is implied by:
166.2.1.1.1.9.1. #false() :- __def_82(X1), __type_7(X1).
                  Without any induction hypothesis:
166.2.1.1.1.9.1.1. #false() :- __def_82(X1), __type_7(X1).
                    By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.9.1.1.1. #false() :- __def_82(r_current(X1,X2)), __type_7(r_current(X1,X2)).
                      __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.10. #false() :- __def_98(X2), __def_97(X1), __def_83(X2), __def_82(X1).
                 This is implied by:
166.2.1.1.1.10.1. #false() :- __def_82(X1), __def_97(X1).
                   Without any induction hypothesis:
166.2.1.1.1.10.1.1. #false() :- __def_82(X1), __def_97(X1).
                     By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.10.1.1.1. #false() :- __def_82(r_current(X1,X2)), __def_97(r_current(X1,X2)).
                       __def_82(r_current(X1,X2)) is impossible.
166.2.1.1.1.11. #false() :- knows_current(X1), knows_current(X2), __def_83(X2), __def_82(X1).
                 This is implied by:
166.2.1.1.1.11.1. #false() :- __def_82(X1), knows_current(X1).
                   Without any induction hypothesis:
166.2.1.1.1.11.1.1. #false() :- __def_82(X1), knows_current(X1).
                     By induction on X1 satisfying __def_82, must start with r_current.
166.2.1.1.1.11.1.1.1. #false() :- __def_82(r_current(X1,X2)), knows_current(r_current(X1,X2)).
                       __def_82(r_current(X1,X2)) is impossible.
166.3. testable_current(X1) :- knows_current(X2), knows_current(X1), testable_current(X2).
        Because the following simpler clause holds:
166.3.1. testable_current(X1) :- knows_current(X1).
          By induction on X1 satisfying knows_current, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
166.3.1.1. testable_current(dec(X1,X2)) :- knows_current(dec(X1,X2)).
            knows_current(dec(X1,X2)) must be by knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
166.3.1.1.1. testable_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
              Infer testable_current(dec(X1,X2)) using testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
166.3.1.1.1.1. testable_current(X1) :- knows_current(X1), knows_current(X2).
                Because the following simpler clause holds:
166.3.1.1.1.1.1. testable_current(X1) :- knows_current(X1).
                  By induction hypothesis testable_current(X1) :- knows_current(X1)..
166.3.1.1.1.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
166.3.1.2. testable_current(s(X1)) :- knows_current(s(X1)).
            knows_current(s(X1)) must be by knows_current(s(X)) :- knows_current(X).
166.3.1.2.1. testable_current(s(X1)) :- knows_current(X1).
              Infer testable_current(s(X1)) using testable_current(s(X)) :- testable_current(X).
166.3.1.2.1.1. testable_current(X1) :- knows_current(X1).: see 166.3.1.1.1.1.1.
166.3.1.3. testable_current(nil) :- knows_current(nil).
            knows_current(nil) must be by knows_current(nil).
166.3.1.3.1. testable_current(nil).
              Infer testable_current(nil) using testable_current(nil).
166.3.1.4. testable_current(nonceb_old(X1,X2)) :- knows_current(nonceb_old(X1,X2)).
            knows_current(nonceb_old(X1,X2)) must be by knows_current(nonceb_old(X1,X2)).
166.3.1.4.1. testable_current(nonceb_old(X1,X2)).
              Infer testable_current(nonceb_old(X1,X2)) using testable_current(nonceb_old(X1,X2)).
166.3.1.5. testable_current(i) :- knows_current(i).
            knows_current(i) must be by knows_current(i).
166.3.1.5.1. testable_current(i).
              Infer testable_current(i) using testable_current(i).
166.3.1.6. testable_current(p(X1)) :- knows_current(p(X1)).
            knows_current(p(X1)) must be by knows_current(p(X)) :- knows_current(X).
166.3.1.6.1. testable_current(p(X1)) :- knows_current(X1).
              Infer testable_current(p(X1)) using testable_current(p(X)) :- testable_current(X).
166.3.1.6.1.1. testable_current(X1) :- knows_current(X1).: see 166.3.1.1.1.1.1.
166.3.1.7. testable_current(key(X1,X2)) :- knows_current(key(X1,X2)).
            Examine all ways of building knows_current(key(X1,X2)) in the body.
            The 3 possibilities are:
            knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
            knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
            knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
166.3.1.7.1. testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
              Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
166.3.1.7.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
166.3.1.7.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
166.3.1.7.2. testable_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
              Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
166.3.1.7.2.1. __def_118(X1) :- __def_62(X1), __def_63(X2).
                Because the following simpler clause holds:
166.3.1.7.2.1.1. __def_118(X1) :- __def_62(X1).
                  Without any induction hypothesis:
166.3.1.7.2.1.1.1. __def_118(X1) :- __def_62(X1).
                    By induction on X1 satisfying __def_62, must start with prv.
166.3.1.7.2.1.1.1.1. __def_118(prv) :- __def_62(prv).
                      __def_62(prv) must be by __def_62(prv).
166.3.1.7.2.1.1.1.1.1. __def_118(prv).: see 83.
166.3.1.7.2.2. __type_29(X2) :- __def_62(X1), __def_63(X2).
                Because the following simpler clause holds:
166.3.1.7.2.2.1. __type_29(X2) :- __def_63(X2).
                  Without any induction hypothesis:
166.3.1.7.2.2.1.1. __type_29(X1) :- __def_63(X1).
                    By induction on X2 satisfying __def_63, must start with i.
166.3.1.7.2.2.1.1.1. __type_29(i) :- __def_63(i).
                      __def_63(i) must be by __def_63(i).
166.3.1.7.2.2.1.1.1.1. __type_29(i).: see 3.3.1.1.1.
166.3.1.7.3. testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
              Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
166.3.1.7.3.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
166.3.1.7.3.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
166.3.1.8. testable_current(cons(X1,X2)) :- knows_current(cons(X1,X2)).
            knows_current(cons(X1,X2)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
166.3.1.8.1. testable_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
              Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X1).
166.3.1.8.1.1. testable_current(X1) :- knows_current(X1), knows_current(X2).: see 166.3.1.1.1.1.
166.3.1.9. testable_current(crypt(X1,X2)) :- knows_current(crypt(X1,X2)).
            Examine all ways of building knows_current(crypt(X1,X2)) in the body.
            The 9 possibilities are:
            knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
            knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
            knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
            knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
            knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
            knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
            knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
            knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
            knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
166.3.1.9.1. testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
166.3.1.9.1.1. __type_22(X1) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.1.
166.3.1.9.1.2. __def_105(X2) :- __type_22(X1), __def_105(X2).: see 44.1.1.9.1.2.
166.3.1.9.2. testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
166.3.1.9.2.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
166.3.1.9.2.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
166.3.1.9.3. testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
166.3.1.9.3.1. __def_85(X1) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.1.
166.3.1.9.3.2. __def_86(X2) :- __def_85(X1), __def_86(X2).: see 44.1.1.9.3.2.
166.3.1.9.4. testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
166.3.1.9.4.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
166.3.1.9.4.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
166.3.1.9.5. testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
166.3.1.9.5.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
166.3.1.9.5.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
166.3.1.9.6. testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
166.3.1.9.6.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
166.3.1.9.6.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
166.3.1.9.7. testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
166.3.1.9.7.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
166.3.1.9.7.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
166.3.1.9.8. testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
166.3.1.9.8.1. __def_97(X1) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.1.
166.3.1.9.8.2. __def_98(X2) :- __def_97(X1), __def_98(X2).: see 44.1.1.9.8.2.
166.3.1.9.9. testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
              Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
166.3.1.9.9.1. knows_current(X1) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.1.
166.3.1.9.9.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
166.3.1.10. testable_current(noncea_old(X1,X2)) :- knows_current(noncea_old(X1,X2)).
             knows_current(noncea_old(X1,X2)) must be by knows_current(noncea_old(X1,X2)).
166.3.1.10.1. testable_current(noncea_old(X1,X2)).
               Infer testable_current(noncea_old(X1,X2)) using testable_current(noncea_old(X1,X2)).
166.3.1.11. testable_current(alice) :- knows_current(alice).
             knows_current(alice) must be by knows_current(alice).
166.3.1.11.1. testable_current(alice).
               Infer testable_current(alice) using testable_current(alice).
166.3.1.12. testable_current(enc(X1,X2)) :- knows_current(enc(X1,X2)).
             Examine all ways of building knows_current(enc(X1,X2)) in the body.
             The 4 possibilities are:
             knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
             knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
             knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
             knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
166.3.1.12.1. testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
               Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
166.3.1.12.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
166.3.1.12.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
166.3.1.12.2. testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
               Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
166.3.1.12.2.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
166.3.1.12.2.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
166.3.1.12.3. testable_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
               Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
166.3.1.12.3.1. testable_current(X1) :- knows_current(X1), knows_current(X2).: see 166.3.1.1.1.1.
166.3.1.12.3.2. knows_current(X2) :- knows_current(X1), knows_current(X2).: see 44.1.1.1.1.2.
166.3.1.12.4. testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
               Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
166.3.1.12.4.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
166.3.1.12.4.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
166.3.1.13. testable_current(bob) :- knows_current(bob).
             knows_current(bob) must be by knows_current(bob).
166.3.1.13.1. testable_current(bob).
               Infer testable_current(bob) using testable_current(bob).
166.3.1.14. testable_current(server) :- knows_current(server).
             knows_current(server) must be by knows_current(server).
166.3.1.14.1. testable_current(server).
               Infer testable_current(server) using testable_current(server).
166.3.1.15. testable_current(passwd_old(X1,X2)) :- knows_current(passwd_old(X1,X2)).
             knows_current(passwd_old(X1,X2)) must be by knows_current(passwd_old(X1,X2)).
166.3.1.15.1. testable_current(passwd_old(X1,X2)).
               Infer testable_current(passwd_old(X1,X2)) using testable_current(passwd_old(X1,X2)).
166.4. testable_current(X1) :- __def_76(X2), __def_77(X1), testable_current(X2).
        Special case of:
166.4.1. #false() :- __def_76(X1), testable_current(X1).
          By induction on X1 satisfying __def_76, must start with crypt.
166.4.1.1. #false() :- __def_76(crypt(X1,X2)), testable_current(crypt(X1,X2)).
            __def_76(crypt(X1,X2)) must be by __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
166.4.1.1.1. #false() :- testable_current(crypt(X1,X2)), __def_78(X1), __type_17(X2).
              Examine all ways of building testable_current(crypt(X1,X2)) in the body.
              The 11 possibilities are:
              testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
              testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
              testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
              testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
              testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
              testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
              testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
              testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
166.4.1.1.1.1. #false() :- __def_105(X2), __def_78(X1), __type_17(X2), __type_22(X1).
                This is implied by:
166.4.1.1.1.1.1. #false() :- __def_78(X1), __type_22(X1).
                  Without any induction hypothesis:
166.4.1.1.1.1.1.1. #false() :- __def_78(X1), __type_22(X1).
                    By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.1.1.1.1. #false() :- __def_78(r_current(X1,X2)), __type_22(r_current(X1,X2)).
                      __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.2. #false() :- __def_28(X1), __def_29(X2), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.2.1. #false() :- __def_78(X1), __def_28(X1).
                  Without any induction hypothesis:
166.4.1.1.1.2.1.1. #false() :- __def_78(X1), __def_28(X1).
                    By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.2.1.1.1. #false() :- __def_78(r_current(X1,X2)), __def_28(r_current(X1,X2)).
                      __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.3. #false() :- __def_85(X1), __def_86(X2), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.3.1. #false() :- __def_78(X1), __def_85(X1).
                  Without any induction hypothesis:
166.4.1.1.1.3.1.1. #false() :- __def_78(X1), __def_85(X1).
                    By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.3.1.1.1. #false() :- __def_78(r_current(X1,X2)), __def_85(r_current(X1,X2)).
                      __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.4. #false() :- __def_22(X2), __def_21(X1), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.4.1. #false() :- __def_78(X1), __def_21(X1).
                  Without any induction hypothesis:
166.4.1.1.1.4.1.1. #false() :- __def_78(X1), __def_21(X1).
                    By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.4.1.1.1. #false() :- __def_78(r_current(X1,X2)), __def_21(r_current(X1,X2)).
                      __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.5. #false() :- __def_114(X2), __type_27(X1), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.5.1. #false() :- __type_27(X1), __def_78(X1).
                  Without any induction hypothesis:
166.4.1.1.1.5.1.1. #false() :- __type_27(X1), __def_78(X1).
                    By induction on X1 satisfying __type_27, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
166.4.1.1.1.5.1.1.1. #false() :- __type_27(dec(X1,X2)), __def_78(dec(X1,X2)).
                      __type_27(dec(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.2. #false() :- __type_27(s(X1)), __def_78(s(X1)).
                      __type_27(s(X1)) is impossible.
166.4.1.1.1.5.1.1.3. #false() :- __type_27(nil), __def_78(nil).
                      __type_27(nil) is impossible.
166.4.1.1.1.5.1.1.4. #false() :- __type_27(nonceb_old(X1,X2)), __def_78(nonceb_old(X1,X2)).
                      __type_27(nonceb_old(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.5. #false() :- __type_27(i), __def_78(i).
                      __type_27(i) is impossible.
166.4.1.1.1.5.1.1.6. #false() :- __type_27(r_old(X1,X2)), __def_78(r_old(X1,X2)).
                      __type_27(r_old(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.7. #false() :- __type_27(p(X1)), __def_78(p(X1)).
                      __type_27(p(X1)) is impossible.
166.4.1.1.1.5.1.1.8. #false() :- __type_27(key(X1,X2)), __def_78(key(X1,X2)).
                      __type_27(key(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.9. #false() :- __type_27(cons(X1,X2)), __def_78(cons(X1,X2)).
                      __type_27(cons(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.10. #false() :- __type_27(crypt(X1,X2)), __def_78(crypt(X1,X2)).
                       __type_27(crypt(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.11. #false() :- __type_27(noncea_old(X1,X2)), __def_78(noncea_old(X1,X2)).
                       __type_27(noncea_old(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.12. #false() :- __type_27(alice), __def_78(alice).
                       __type_27(alice) is impossible.
166.4.1.1.1.5.1.1.13. #false() :- __type_27(enc(X1,X2)), __def_78(enc(X1,X2)).
                       __type_27(enc(X1,X2)) is impossible.
166.4.1.1.1.5.1.1.14. #false() :- __type_27(bob), __def_78(bob).
                       __type_27(bob) is impossible.
166.4.1.1.1.5.1.1.15. #false() :- __type_27(server), __def_78(server).
                       __type_27(server) is impossible.
166.4.1.1.1.5.1.1.16. #false() :- __type_27(passwd_old(X1,X2)), __def_78(passwd_old(X1,X2)).
                       __type_27(passwd_old(X1,X2)) is impossible.
166.4.1.1.1.6. #false() :- __def_17(X1), __type_2(X2), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.6.1. #false() :- __def_78(X1), __def_17(X1).
                  Without any induction hypothesis:
166.4.1.1.1.6.1.1. #false() :- __def_78(X1), __def_17(X1).
                    By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.6.1.1.1. #false() :- __def_78(r_current(X1,X2)), __def_17(r_current(X1,X2)).
                      __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.7. #false() :- __type_26(X1), __def_112(X2), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.7.1. #false() :- __type_26(X1), __def_78(X1).
                  Without any induction hypothesis:
166.4.1.1.1.7.1.1. #false() :- __type_26(X1), __def_78(X1).
                    By induction on X1 satisfying __type_26, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
166.4.1.1.1.7.1.1.1. #false() :- __type_26(dec(X1,X2)), __def_78(dec(X1,X2)).
                      __type_26(dec(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.2. #false() :- __type_26(s(X1)), __def_78(s(X1)).
                      __type_26(s(X1)) is impossible.
166.4.1.1.1.7.1.1.3. #false() :- __type_26(nil), __def_78(nil).
                      __type_26(nil) is impossible.
166.4.1.1.1.7.1.1.4. #false() :- __type_26(nonceb_old(X1,X2)), __def_78(nonceb_old(X1,X2)).
                      __type_26(nonceb_old(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.5. #false() :- __type_26(i), __def_78(i).
                      __type_26(i) is impossible.
166.4.1.1.1.7.1.1.6. #false() :- __type_26(r_old(X1,X2)), __def_78(r_old(X1,X2)).
                      __type_26(r_old(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.7. #false() :- __type_26(p(X1)), __def_78(p(X1)).
                      __type_26(p(X1)) is impossible.
166.4.1.1.1.7.1.1.8. #false() :- __type_26(key(X1,X2)), __def_78(key(X1,X2)).
                      __type_26(key(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.9. #false() :- __type_26(cons(X1,X2)), __def_78(cons(X1,X2)).
                      __type_26(cons(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.10. #false() :- __type_26(crypt(X1,X2)), __def_78(crypt(X1,X2)).
                       __type_26(crypt(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.11. #false() :- __type_26(noncea_old(X1,X2)), __def_78(noncea_old(X1,X2)).
                       __type_26(noncea_old(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.12. #false() :- __type_26(alice), __def_78(alice).
                       __type_26(alice) is impossible.
166.4.1.1.1.7.1.1.13. #false() :- __type_26(enc(X1,X2)), __def_78(enc(X1,X2)).
                       __type_26(enc(X1,X2)) is impossible.
166.4.1.1.1.7.1.1.14. #false() :- __type_26(bob), __def_78(bob).
                       __type_26(bob) is impossible.
166.4.1.1.1.7.1.1.15. #false() :- __type_26(server), __def_78(server).
                       __type_26(server) is impossible.
166.4.1.1.1.7.1.1.16. #false() :- __type_26(passwd_old(X1,X2)), __def_78(passwd_old(X1,X2)).
                       __type_26(passwd_old(X1,X2)) is impossible.
166.4.1.1.1.8. #false() :- __def_24(X1), __def_25(X2), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.8.1. #false() :- __def_24(X1), __def_78(X1).
                  Without any induction hypothesis:
166.4.1.1.1.8.1.1. #false() :- __def_24(X1), __def_78(X1).
                    By induction on X1 satisfying __def_24, must start with noncea_old.
166.4.1.1.1.8.1.1.1. #false() :- __def_24(noncea_old(X1,X2)), __def_78(noncea_old(X1,X2)).
                      __def_24(noncea_old(X1,X2)) is impossible.
166.4.1.1.1.9. #false() :- __def_44(X2), __type_7(X1), __def_78(X1), __type_17(X2).
                This is implied by:
166.4.1.1.1.9.1. #false() :- __def_78(X1), __type_7(X1).
                  Without any induction hypothesis:
166.4.1.1.1.9.1.1. #false() :- __def_78(X1), __type_7(X1).
                    By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.9.1.1.1. #false() :- __def_78(r_current(X1,X2)), __type_7(r_current(X1,X2)).
                      __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.10. #false() :- __def_98(X2), __def_97(X1), __def_78(X1), __type_17(X2).
                 This is implied by:
166.4.1.1.1.10.1. #false() :- __def_78(X1), __def_97(X1).
                   Without any induction hypothesis:
166.4.1.1.1.10.1.1. #false() :- __def_78(X1), __def_97(X1).
                     By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.10.1.1.1. #false() :- __def_78(r_current(X1,X2)), __def_97(r_current(X1,X2)).
                       __def_78(r_current(X1,X2)) is impossible.
166.4.1.1.1.11. #false() :- __def_78(X1), __type_17(X2), knows_current(X1), knows_current(X2).
                 This is implied by:
166.4.1.1.1.11.1. #false() :- __def_78(X1), knows_current(X1).
                   Without any induction hypothesis:
166.4.1.1.1.11.1.1. #false() :- __def_78(X1), knows_current(X1).
                     By induction on X1 satisfying __def_78, must start with r_current.
166.4.1.1.1.11.1.1.1. #false() :- __def_78(r_current(X1,X2)), knows_current(r_current(X1,X2)).
                       __def_78(r_current(X1,X2)) is impossible.
. lemma 167:167. knows_old(crypt(X1,X2)) :- __def_25(X2), __def_24(X1).
      Equivalent to:
167.1. knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        Infer knows_old(crypt(X1,X2)) using knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
167.1.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
167.1.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
. lemma 168:168. testable_old(X1) :- knows_old(X1).
      By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
168.1. testable_old(dec(X1,X2)) :- knows_old(dec(X1,X2)).
        knows_old(dec(X1,X2)) must be by knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
168.1.1. testable_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
          Infer testable_old(dec(X1,X2)) using testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
168.1.1.1. testable_old(X1) :- knows_old(X1), knows_old(X2).
            Because the following simpler clause holds:
168.1.1.1.1. testable_old(X1) :- knows_old(X1).
              By induction hypothesis testable_old(X1) :- knows_old(X1)..
168.1.1.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
168.2. testable_old(s(X1)) :- knows_old(s(X1)).
        knows_old(s(X1)) must be by knows_old(s(X)) :- knows_old(X).
168.2.1. testable_old(s(X1)) :- knows_old(X1).
          Infer testable_old(s(X1)) using testable_old(s(X)) :- testable_old(X).
168.2.1.1. testable_old(X1) :- knows_old(X1).: see 168.1.1.1.1.
168.3. testable_old(nil) :- knows_old(nil).
        knows_old(nil) must be by knows_old(nil).
168.3.1. testable_old(nil).
          Infer testable_old(nil) using testable_old(nil).
168.4. testable_old(i) :- knows_old(i).
        knows_old(i) must be by knows_old(i).
168.4.1. testable_old(i).
          Infer testable_old(i) using testable_old(i).
168.5. testable_old(p(X1)) :- knows_old(p(X1)).
        knows_old(p(X1)) must be by knows_old(p(X)) :- knows_old(X).
168.5.1. testable_old(p(X1)) :- knows_old(X1).
          Infer testable_old(p(X1)) using testable_old(p(X)) :- testable_old(X).
168.5.1.1. testable_old(X1) :- knows_old(X1).: see 168.1.1.1.1.
168.6. testable_old(key(X1,X2)) :- knows_old(key(X1,X2)).
        Examine all ways of building knows_old(key(X1,X2)) in the body.
        The 2 possibilities are:
        knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
        knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
168.6.1. testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
          Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
168.6.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
168.6.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
168.6.2. testable_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
          Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
168.6.2.1. __def_58(X1) :- __def_62(X1), __def_63(X2).
            Because the following simpler clause holds:
168.6.2.1.1. __def_58(X1) :- __def_62(X1).
              Without any induction hypothesis:
168.6.2.1.1.1. __def_58(X1) :- __def_62(X1).
                By induction on X1 satisfying __def_62, must start with prv.
168.6.2.1.1.1.1. __def_58(prv) :- __def_62(prv).
                  __def_62(prv) must be by __def_62(prv).
168.6.2.1.1.1.1.1. __def_58(prv).: see 30.
168.6.2.2. __type_14(X2) :- __def_62(X1), __def_63(X2).
            Because the following simpler clause holds:
168.6.2.2.1. __type_14(X2) :- __def_63(X2).
              Without any induction hypothesis:
168.6.2.2.1.1. __type_14(X1) :- __def_63(X1).
                By induction on X2 satisfying __def_63, must start with i.
168.6.2.2.1.1.1. __type_14(i) :- __def_63(i).
                  __def_63(i) must be by __def_63(i).
168.6.2.2.1.1.1.1. __type_14(i).: see 86.1.1.1.1.
168.7. testable_old(cons(X1,X2)) :- knows_old(cons(X1,X2)).
        knows_old(cons(X1,X2)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
168.7.1. testable_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
          Infer testable_old(cons(X1,X2)) using testable_old(cons(X1,X2)) :- testable_old(X1).
168.7.1.1. testable_old(X1) :- knows_old(X1), knows_old(X2).: see 168.1.1.1.
168.8. testable_old(crypt(X1,X2)) :- knows_old(crypt(X1,X2)).
        Examine all ways of building knows_old(crypt(X1,X2)) in the body.
        The 4 possibilities are:
        knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
168.8.1. testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
          Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
168.8.1.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
168.8.1.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
168.8.2. testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
          Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
168.8.2.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
168.8.2.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
168.8.3. testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
          Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
168.8.3.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
168.8.3.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
168.8.4. testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
          Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
168.8.4.1. knows_old(X1) :- knows_old(X1), knows_old(X2).: see 7.8.5.1.
168.8.4.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
168.9. testable_old(alice) :- knows_old(alice).
        knows_old(alice) must be by knows_old(alice).
168.9.1. testable_old(alice).
          Infer testable_old(alice) using testable_old(alice).
168.10. testable_old(enc(X1,X2)) :- knows_old(enc(X1,X2)).
         Examine all ways of building knows_old(enc(X1,X2)) in the body.
         The 4 possibilities are:
         knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
         knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
         knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
         knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
168.10.1. testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
           Infer testable_old(enc(X1,X2)) using testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
168.10.1.1. __def_15(X1) :- __def_15(X1), __def_16(X2).: see 7.10.1.1.
168.10.1.2. __def_16(X2) :- __def_15(X1), __def_16(X2).: see 7.10.1.2.
168.10.2. testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
           Infer testable_old(enc(X1,X2)) using testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
168.10.2.1. __def_19(X1) :- __def_19(X1), __def_20(X2).: see 7.10.2.1.
168.10.2.2. __def_20(X2) :- __def_19(X1), __def_20(X2).: see 7.10.2.2.
168.10.3. testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
           Infer testable_old(enc(X1,X2)) using testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
168.10.3.1. __def_10(X1) :- __def_10(X1), __def_11(X2).: see 7.10.3.1.
168.10.3.2. __def_11(X2) :- __def_10(X1), __def_11(X2).: see 7.10.3.2.
168.10.4. testable_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
           Infer testable_old(enc(X1,X2)) using testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
168.10.4.1. testable_old(X1) :- knows_old(X1), knows_old(X2).: see 168.1.1.1.
168.10.4.2. knows_old(X2) :- knows_old(X1), knows_old(X2).: see 7.8.5.2.
168.11. testable_old(bob) :- knows_old(bob).
         knows_old(bob) must be by knows_old(bob).
168.11.1. testable_old(bob).
           Infer testable_old(bob) using testable_old(bob).
168.12. testable_old(server) :- knows_old(server).
         knows_old(server) must be by knows_old(server).
168.12.1. testable_old(server).
           Infer testable_old(server) using testable_old(server).
. lemma 169:169. knows_current(X1) :- __def_68 (X1,X2), __def_69(X2).
      Special case of:
169.1. #false() :- __def_69(X1).: see 140.1.1.1.1.1.
. lemma 170:170. knows_current(X1) :- knows_current(dec(X1,X2)), knows_current(X2).
      Equivalent to:
170.1. knows_current(X1) :- knows_current(X2), knows_current(dec(X1,X2)).
        knows_current(dec(X1,X2)) must be by knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
170.1.1. knows_current(X1) :- knows_current(X1), knows_current(X2), knows_current(X2).
          Equivalent to:
170.1.1.1. knows_current(X1) :- knows_current(X2), knows_current(X1).: see 162.1.
. lemma 171:171. knows_current(X1) :- testable_current(dec(X2,X1)), testable_current(X2).
      Equivalent to:
171.1. knows_current(X1) :- testable_current(X2), testable_current(dec(X2,X1)).
        testable_current(dec(X2,X1)) must be by testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
171.1.1. knows_current(X1) :- testable_current(X2), knows_current(X1), testable_current(X2).
          Equivalent to:
171.1.1.1. knows_current(X1) :- knows_current(X1), testable_current(X2).
            Because the following simpler clause holds:
171.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 172:172. knows_old(cons(X1,X2)) :- knows_old(X2), knows_old(X1).
      Infer knows_old(cons(X1,X2)) using knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
172.1. knows_old(X1) :- knows_old(X2), knows_old(X1).
        Because the following simpler clause holds:
172.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
172.2. knows_old(X2) :- knows_old(X2), knows_old(X1).
        Because the following simpler clause holds:
172.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
. lemma 173:173. knows_old(X1) :- knows_old(cons(X1,X2)).
      knows_old(cons(X1,X2)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
173.1. knows_old(X1) :- knows_old(X1), knows_old(X2).
        Equivalent to:
173.1.1. knows_old(X1) :- knows_old(X2), knows_old(X1).: see 172.1.
. lemma 174:174. knows_old(X1) :- testable_old(enc(X2,X1)), testable_old(X2).
      Equivalent to:
174.1. knows_old(X1) :- testable_old(X2), testable_old(enc(X2,X1)).
        Examine all ways of building testable_old(enc(X2,X1)) in the body.
        The 4 possibilities are:
        testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
        testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
174.1.1. knows_old(X1) :- __def_15(X2), __def_16(X1), testable_old(X2).
          Special case of:
174.1.1.1. #false() :- testable_old(X1), __def_15(X1).
            By induction on X1 satisfying testable_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
174.1.1.1.1. #false() :- testable_old(dec(X1,X2)), __def_15(dec(X1,X2)).
              testable_old(dec(X1,X2)) is impossible.
174.1.1.1.2. #false() :- testable_old(s(X1)), __def_15(s(X1)).
              testable_old(s(X1)) is impossible.
174.1.1.1.3. #false() :- testable_old(nil), __def_15(nil).
              testable_old(nil) is impossible.
174.1.1.1.4. #false() :- testable_old(i), __def_15(i).
              testable_old(i) is impossible.
174.1.1.1.5. #false() :- testable_old(p(X1)), __def_15(p(X1)).
              testable_old(p(X1)) is impossible.
174.1.1.1.6. #false() :- testable_old(key(X1,X2)), __def_15(key(X1,X2)).
              testable_old(key(X1,X2)) is impossible.
174.1.1.1.7. #false() :- testable_old(cons(X1,X2)), __def_15(cons(X1,X2)).
              testable_old(cons(X1,X2)) is impossible.
174.1.1.1.8. #false() :- testable_old(crypt(X1,X2)), __def_15(crypt(X1,X2)).
              Examine all ways of building testable_old(crypt(X1,X2)) in the body.
              The 6 possibilities are:
              testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
              testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
              testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
174.1.1.1.8.1. #false() :- __def_15(crypt(X1,X2)), __type_12(X1), __def_54(X2).
                __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
174.1.1.1.8.1.1. #false() :- __type_12(X1), __def_17(X1), __def_54(X2), __type_2(X2).
                  This is implied by:
174.1.1.1.8.1.1.1. #false() :- __def_17(X1), __type_12(X1).
                    Without any induction hypothesis:
174.1.1.1.8.1.1.1.1. #false() :- __def_17(X1), __type_12(X1).
                      By induction on X1 satisfying __def_17, must start with r_old.
174.1.1.1.8.1.1.1.1.1. #false() :- __def_17(r_old(X1,X2)), __type_12(r_old(X1,X2)).
                        __def_17(r_old(X1,X2)) is impossible.
174.1.1.1.8.2. #false() :- __def_15(crypt(X1,X2)), __def_28(X1), __def_29(X2).
                __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
174.1.1.1.8.2.1. #false() :- __def_28(X1), __def_17(X1), __type_2(X2), __def_29(X2).
                  This is implied by:
174.1.1.1.8.2.1.1. #false() :- __def_28(X1), __def_17(X1).
                    Without any induction hypothesis:
174.1.1.1.8.2.1.1.1. #false() :- __def_28(X1), __def_17(X1).
                      By induction on X1 satisfying __def_28, must start with cons.
174.1.1.1.8.2.1.1.1.1. #false() :- __def_28(cons(X1,X2)), __def_17(cons(X1,X2)).
                        __def_28(cons(X1,X2)) is impossible.
174.1.1.1.8.3. #false() :- __def_15(crypt(X1,X2)), __def_24(X1), __def_25(X2).
                __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
174.1.1.1.8.3.1. #false() :- __def_24(X1), __def_17(X1), __type_2(X2), __def_25(X2).
                  This is implied by:
174.1.1.1.8.3.1.1. #false() :- __def_24(X1), __def_17(X1).
                    Without any induction hypothesis:
174.1.1.1.8.3.1.1.1. #false() :- __def_24(X1), __def_17(X1).
                      By induction on X1 satisfying __def_24, must start with noncea_old.
174.1.1.1.8.3.1.1.1.1. #false() :- __def_24(noncea_old(X1,X2)), __def_17(noncea_old(X1,X2)).
                        __def_24(noncea_old(X1,X2)) is impossible.
174.1.1.1.8.4. #false() :- __def_15(crypt(X1,X2)), __type_7(X1), __def_44(X2).
                __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
174.1.1.1.8.4.1. #false() :- __def_17(X1), __type_2(X2), __def_44(X2), __type_7(X1).
                  This is implied by:
174.1.1.1.8.4.1.1. #false() :- __def_17(X1), __type_7(X1).
                    Without any induction hypothesis:
174.1.1.1.8.4.1.1.1. #false() :- __def_17(X1), __type_7(X1).
                      By induction on X1 satisfying __def_17, must start with r_old.
174.1.1.1.8.4.1.1.1.1. #false() :- __def_17(r_old(X1,X2)), __type_7(r_old(X1,X2)).
                        __def_17(r_old(X1,X2)) is impossible.
174.1.1.1.8.5. #false() :- __def_15(crypt(X1,X2)), knows_old(X1), knows_old(X2).
                __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
174.1.1.1.8.5.1. #false() :- __def_17(X1), knows_old(X1), __type_2(X2), knows_old(X2).
                  This is implied by:
174.1.1.1.8.5.1.1. #false() :- knows_old(X1), __def_17(X1).
                    Without any induction hypothesis:
174.1.1.1.8.5.1.1.1. #false() :- knows_old(X1), __def_17(X1).
                      By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
174.1.1.1.8.5.1.1.1.1. #false() :- knows_old(dec(X1,X2)), __def_17(dec(X1,X2)).
                        knows_old(dec(X1,X2)) is impossible.
174.1.1.1.8.5.1.1.1.2. #false() :- knows_old(s(X1)), __def_17(s(X1)).
                        knows_old(s(X1)) is impossible.
174.1.1.1.8.5.1.1.1.3. #false() :- knows_old(nil), __def_17(nil).
                        knows_old(nil) is impossible.
174.1.1.1.8.5.1.1.1.4. #false() :- knows_old(i), __def_17(i).
                        knows_old(i) is impossible.
174.1.1.1.8.5.1.1.1.5. #false() :- knows_old(p(X1)), __def_17(p(X1)).
                        knows_old(p(X1)) is impossible.
174.1.1.1.8.5.1.1.1.6. #false() :- knows_old(key(X1,X2)), __def_17(key(X1,X2)).
                        knows_old(key(X1,X2)) is impossible.
174.1.1.1.8.5.1.1.1.7. #false() :- knows_old(cons(X1,X2)), __def_17(cons(X1,X2)).
                        knows_old(cons(X1,X2)) is impossible.
174.1.1.1.8.5.1.1.1.8. #false() :- knows_old(crypt(X1,X2)), __def_17(crypt(X1,X2)).
                        knows_old(crypt(X1,X2)) is impossible.
174.1.1.1.8.5.1.1.1.9. #false() :- knows_old(alice), __def_17(alice).
                        knows_old(alice) is impossible.
174.1.1.1.8.5.1.1.1.10. #false() :- knows_old(enc(X1,X2)), __def_17(enc(X1,X2)).
                         knows_old(enc(X1,X2)) is impossible.
174.1.1.1.8.5.1.1.1.11. #false() :- knows_old(bob), __def_17(bob).
                         knows_old(bob) is impossible.
174.1.1.1.8.5.1.1.1.12. #false() :- knows_old(server), __def_17(server).
                         knows_old(server) is impossible.
174.1.1.1.8.6. #false() :- __def_15(crypt(X1,X2)), __type_11(X1), __def_52(X2).
                __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
174.1.1.1.8.6.1. #false() :- __def_17(X1), __type_2(X2), __def_52(X2), __type_11(X1).
                  This is implied by:
174.1.1.1.8.6.1.1. #false() :- __def_17(X1), __type_11(X1).
                    Without any induction hypothesis:
174.1.1.1.8.6.1.1.1. #false() :- __def_17(X1), __type_11(X1).
                      By induction on X1 satisfying __def_17, must start with r_old.
174.1.1.1.8.6.1.1.1.1. #false() :- __def_17(r_old(X1,X2)), __type_11(r_old(X1,X2)).
                        __def_17(r_old(X1,X2)) is impossible.
174.1.1.1.9. #false() :- testable_old(alice), __def_15(alice).
              testable_old(alice) is impossible.
174.1.1.1.10. #false() :- testable_old(enc(X1,X2)), __def_15(enc(X1,X2)).
               testable_old(enc(X1,X2)) is impossible.
174.1.1.1.11. #false() :- testable_old(bob), __def_15(bob).
               testable_old(bob) is impossible.
174.1.1.1.12. #false() :- testable_old(server), __def_15(server).
               testable_old(server) is impossible.
174.1.2. knows_old(X1) :- __def_19(X2), __def_20(X1), testable_old(X2).
          Special case of:
174.1.2.1. #false() :- __def_19(X1), testable_old(X1).
            By induction on X1 satisfying __def_19, must start with crypt.
174.1.2.1.1. #false() :- __def_19(crypt(X1,X2)), testable_old(crypt(X1,X2)).
              __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
174.1.2.1.1.1. #false() :- testable_old(crypt(X1,X2)), __def_21(X1), __def_22(X2).
                Examine all ways of building testable_old(crypt(X1,X2)) in the body.
                The 6 possibilities are:
                testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
                testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
                testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
174.1.2.1.1.1.1. #false() :- __type_12(X1), __def_54(X2), __def_22(X2), __def_21(X1).
                  This is implied by:
174.1.2.1.1.1.1.1. #false() :- __type_12(X1), __def_21(X1).
                    Without any induction hypothesis:
174.1.2.1.1.1.1.1.1. #false() :- __type_12(X1), __def_21(X1).
                      By induction on X1 satisfying __type_12, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
174.1.2.1.1.1.1.1.1.1. #false() :- __type_12(dec(X1,X2)), __def_21(dec(X1,X2)).
                        __type_12(dec(X1,X2)) is impossible.
174.1.2.1.1.1.1.1.1.2. #false() :- __type_12(s(X1)), __def_21(s(X1)).
                        __type_12(s(X1)) is impossible.
174.1.2.1.1.1.1.1.1.3. #false() :- __type_12(nil), __def_21(nil).
                        __type_12(nil) is impossible.
174.1.2.1.1.1.1.1.1.4. #false() :- __type_12(i), __def_21(i).
                        __type_12(i) is impossible.
174.1.2.1.1.1.1.1.1.5. #false() :- __type_12(p(X1)), __def_21(p(X1)).
                        __type_12(p(X1)) is impossible.
174.1.2.1.1.1.1.1.1.6. #false() :- __type_12(key(X1,X2)), __def_21(key(X1,X2)).
                        __type_12(key(X1,X2)) is impossible.
174.1.2.1.1.1.1.1.1.7. #false() :- __type_12(cons(X1,X2)), __def_21(cons(X1,X2)).
                        __type_12(cons(X1,X2)) is impossible.
174.1.2.1.1.1.1.1.1.8. #false() :- __type_12(crypt(X1,X2)), __def_21(crypt(X1,X2)).
                        __type_12(crypt(X1,X2)) is impossible.
174.1.2.1.1.1.1.1.1.9. #false() :- __type_12(alice), __def_21(alice).
                        __type_12(alice) is impossible.
174.1.2.1.1.1.1.1.1.10. #false() :- __type_12(enc(X1,X2)), __def_21(enc(X1,X2)).
                         __type_12(enc(X1,X2)) is impossible.
174.1.2.1.1.1.1.1.1.11. #false() :- __type_12(bob), __def_21(bob).
                         __type_12(bob) is impossible.
174.1.2.1.1.1.1.1.1.12. #false() :- __type_12(server), __def_21(server).
                         __type_12(server) is impossible.
174.1.2.1.1.1.2. #false() :- __def_28(X1), __def_29(X2), __def_22(X2), __def_21(X1).
                  This is implied by:
174.1.2.1.1.1.2.1. #false() :- __def_28(X1), __def_21(X1).
                    Without any induction hypothesis:
174.1.2.1.1.1.2.1.1. #false() :- __def_28(X1), __def_21(X1).
                      By induction on X1 satisfying __def_28, must start with cons.
174.1.2.1.1.1.2.1.1.1. #false() :- __def_28(cons(X1,X2)), __def_21(cons(X1,X2)).
                        __def_28(cons(X1,X2)) is impossible.
174.1.2.1.1.1.3. #false() :- __def_24(X1), __def_25(X2), __def_22(X2), __def_21(X1).
                  This is implied by:
174.1.2.1.1.1.3.1. #false() :- __def_24(X1), __def_21(X1).
                    Without any induction hypothesis:
174.1.2.1.1.1.3.1.1. #false() :- __def_24(X1), __def_21(X1).
                      By induction on X1 satisfying __def_24, must start with noncea_old.
174.1.2.1.1.1.3.1.1.1. #false() :- __def_24(noncea_old(X1,X2)), __def_21(noncea_old(X1,X2)).
                        __def_24(noncea_old(X1,X2)) is impossible.
174.1.2.1.1.1.4. #false() :- __def_44(X2), __def_22(X2), __type_7(X1), __def_21(X1).
                  This is implied by:
174.1.2.1.1.1.4.1. #false() :- __type_7(X1), __def_21(X1).
                    Without any induction hypothesis:
174.1.2.1.1.1.4.1.1. #false() :- __type_7(X1), __def_21(X1).
                      By induction on X1 satisfying __type_7, must start with nonceb_old.
174.1.2.1.1.1.4.1.1.1. #false() :- __type_7(nonceb_old(X1,X2)), __def_21(nonceb_old(X1,X2)).
                        __type_7(nonceb_old(X1,X2)) is impossible.
174.1.2.1.1.1.5. #false() :- knows_old(X1), __def_22(X2), __def_21(X1), knows_old(X2).
                  This is implied by:
174.1.2.1.1.1.5.1. #false() :- knows_old(X1), __def_21(X1).
                    Without any induction hypothesis:
174.1.2.1.1.1.5.1.1. #false() :- knows_old(X1), __def_21(X1).
                      By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
174.1.2.1.1.1.5.1.1.1. #false() :- knows_old(dec(X1,X2)), __def_21(dec(X1,X2)).
                        knows_old(dec(X1,X2)) is impossible.
174.1.2.1.1.1.5.1.1.2. #false() :- knows_old(s(X1)), __def_21(s(X1)).
                        knows_old(s(X1)) is impossible.
174.1.2.1.1.1.5.1.1.3. #false() :- knows_old(nil), __def_21(nil).
                        knows_old(nil) is impossible.
174.1.2.1.1.1.5.1.1.4. #false() :- knows_old(i), __def_21(i).
                        knows_old(i) is impossible.
174.1.2.1.1.1.5.1.1.5. #false() :- knows_old(p(X1)), __def_21(p(X1)).
                        knows_old(p(X1)) is impossible.
174.1.2.1.1.1.5.1.1.6. #false() :- knows_old(key(X1,X2)), __def_21(key(X1,X2)).
                        knows_old(key(X1,X2)) is impossible.
174.1.2.1.1.1.5.1.1.7. #false() :- knows_old(cons(X1,X2)), __def_21(cons(X1,X2)).
                        knows_old(cons(X1,X2)) is impossible.
174.1.2.1.1.1.5.1.1.8. #false() :- knows_old(crypt(X1,X2)), __def_21(crypt(X1,X2)).
                        knows_old(crypt(X1,X2)) is impossible.
174.1.2.1.1.1.5.1.1.9. #false() :- knows_old(alice), __def_21(alice).
                        knows_old(alice) is impossible.
174.1.2.1.1.1.5.1.1.10. #false() :- knows_old(enc(X1,X2)), __def_21(enc(X1,X2)).
                         knows_old(enc(X1,X2)) is impossible.
174.1.2.1.1.1.5.1.1.11. #false() :- knows_old(bob), __def_21(bob).
                         knows_old(bob) is impossible.
174.1.2.1.1.1.5.1.1.12. #false() :- knows_old(server), __def_21(server).
                         knows_old(server) is impossible.
174.1.2.1.1.1.6. #false() :- __def_52(X2), __type_11(X1), __def_22(X2), __def_21(X1).
                  This is implied by:
174.1.2.1.1.1.6.1. #false() :- __def_21(X1), __type_11(X1).
                    Without any induction hypothesis:
174.1.2.1.1.1.6.1.1. #false() :- __def_21(X1), __type_11(X1).
                      By induction on X1 satisfying __def_21, must start with r_old.
174.1.2.1.1.1.6.1.1.1. #false() :- __def_21(r_old(X1,X2)), __type_11(r_old(X1,X2)).
                        __def_21(r_old(X1,X2)) is impossible.
174.1.3. knows_old(X1) :- __def_10(X2), __def_11(X1), testable_old(X2).
          Special case of:
174.1.3.1. #false() :- __def_10(X1), testable_old(X1).
            By induction on X1 satisfying __def_10, must start with key.
174.1.3.1.1. #false() :- __def_10(key(X1,X2)), testable_old(key(X1,X2)).
              __def_10(key(X1,X2)) must be by __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
174.1.3.1.1.1. #false() :- testable_old(key(X1,X2)), __def_12(X1), __def_13(X2).
                Examine all ways of building testable_old(key(X1,X2)) in the body.
                The 3 possibilities are:
                testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
                testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
174.1.3.1.1.1.1. #false() :- agent(X2), __def_13(X2), __def_51(X1), __def_12(X1).
                  This is implied by:
174.1.3.1.1.1.1.1. #false() :- agent(X2), __def_13(X2).
                    Without any induction hypothesis:
174.1.3.1.1.1.1.1.1. #false() :- agent(X1), __def_13(X1).
                      By induction on X2 satisfying agent, X2 must start with i, alice, bob or server.
174.1.3.1.1.1.1.1.1.1. #false() :- agent(i), __def_13(i).
                        agent(i) is impossible.
174.1.3.1.1.1.1.1.1.2. #false() :- agent(alice), __def_13(alice).
                        agent(alice) is impossible.
174.1.3.1.1.1.1.1.1.3. #false() :- agent(bob), __def_13(bob).
                        agent(bob) is impossible.
174.1.3.1.1.1.1.1.1.4. #false() :- agent(server), __def_13(server).
                        agent(server) is impossible.
174.1.3.1.1.1.2. #false() :- __type_16(X2), __def_13(X2), __def_12(X1), __def_61(X1).
                  This is implied by:
174.1.3.1.1.1.2.1. #false() :- __def_12(X1), __def_61(X1).
                    Without any induction hypothesis:
174.1.3.1.1.1.2.1.1. #false() :- __def_12(X1), __def_61(X1).
                      By induction on X1 satisfying __def_12, must start with pub.
174.1.3.1.1.1.2.1.1.1. #false() :- __def_12(pub), __def_61(pub).
                        __def_12(pub) is impossible.
174.1.3.1.1.1.3. #false() :- __def_13(X2), __type_14(X2), __def_58(X1), __def_12(X1).
                  This is implied by:
174.1.3.1.1.1.3.1. #false() :- __def_12(X1), __def_58(X1).
                    Without any induction hypothesis:
174.1.3.1.1.1.3.1.1. #false() :- __def_12(X1), __def_58(X1).
                      By induction on X1 satisfying __def_12, must start with pub.
174.1.3.1.1.1.3.1.1.1. #false() :- __def_12(pub), __def_58(pub).
                        __def_12(pub) is impossible.
174.1.4. knows_old(X1) :- testable_old(X2), knows_old(X1), testable_old(X2).
          Equivalent to:
174.1.4.1. knows_old(X1) :- knows_old(X1), testable_old(X2).
            Because the following simpler clause holds:
174.1.4.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 175:175. testable_current(key(X1,X2)) :- __type_31(X2), __def_121(X1).
      Equivalent to:
175.1. testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
        Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
175.1.1. __def_121(X1) :- __def_121(X1), __type_31(X2).: see 82.8.2.1.
175.1.2. __type_31(X2) :- __def_121(X1), __type_31(X2).: see 82.8.2.2.
. lemma 176:176. agent(i).: see 18.1.1.1.1.1.1.
. lemma 177:177. knows_current(X1) :- knows_old(X1).
      By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
177.1. knows_current(dec(X1,X2)) :- knows_old(dec(X1,X2)).
        knows_old(dec(X1,X2)) must be by knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
177.1.1. knows_current(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
          Infer knows_current(dec(X1,X2)) using knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
177.1.1.1. knows_current(X1) :- knows_old(X1), knows_old(X2).
            Because the following simpler clause holds:
177.1.1.1.1. knows_current(X1) :- knows_old(X1).
              By induction hypothesis knows_current(X1) :- knows_old(X1)..
177.1.1.2. knows_current(X2) :- knows_old(X1), knows_old(X2).
            Because the following simpler clause holds:
177.1.1.2.1. knows_current(X2) :- knows_old(X2).
              By induction hypothesis knows_current(X1) :- knows_old(X1)..
177.2. knows_current(s(X1)) :- knows_old(s(X1)).
        knows_old(s(X1)) must be by knows_old(s(X)) :- knows_old(X).
177.2.1. knows_current(s(X1)) :- knows_old(X1).
          Infer knows_current(s(X1)) using knows_current(s(X)) :- knows_current(X).
177.2.1.1. knows_current(X1) :- knows_old(X1).: see 177.1.1.1.1.
177.3. knows_current(nil) :- knows_old(nil).
        knows_old(nil) must be by knows_old(nil).
177.3.1. knows_current(nil).
          Infer knows_current(nil) using knows_current(nil).
177.4. knows_current(i) :- knows_old(i).
        knows_old(i) must be by knows_old(i).
177.4.1. knows_current(i).: see 18.1.1.2.1.1.1.
177.5. knows_current(p(X1)) :- knows_old(p(X1)).
        knows_old(p(X1)) must be by knows_old(p(X)) :- knows_old(X).
177.5.1. knows_current(p(X1)) :- knows_old(X1).
          Infer knows_current(p(X1)) using knows_current(p(X)) :- knows_current(X).
177.5.1.1. knows_current(X1) :- knows_old(X1).: see 177.1.1.1.1.
177.6. knows_current(key(X1,X2)) :- knows_old(key(X1,X2)).
        Examine all ways of building knows_old(key(X1,X2)) in the body.
        The 2 possibilities are:
        knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
        knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
177.6.1. knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
          Infer knows_current(key(X1,X2)) using knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
177.6.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
177.6.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
177.6.2. knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).: see 165.1.
177.7. knows_current(cons(X1,X2)) :- knows_old(cons(X1,X2)).
        knows_old(cons(X1,X2)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
177.7.1. knows_current(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
          Infer knows_current(cons(X1,X2)) using knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
177.7.1.1. knows_current(X1) :- knows_old(X1), knows_old(X2).: see 177.1.1.1.
177.7.1.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 177.1.1.2.
177.8. knows_current(crypt(X1,X2)) :- knows_old(crypt(X1,X2)).
        Examine all ways of building knows_old(crypt(X1,X2)) in the body.
        The 4 possibilities are:
        knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
177.8.1. knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
          Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
177.8.1.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
177.8.1.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
177.8.2. knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
          Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
177.8.2.1. __def_24(X1) :- __def_24(X1), __def_25(X2).: see 7.8.3.1.
177.8.2.2. __def_25(X2) :- __def_24(X1), __def_25(X2).: see 7.8.3.2.
177.8.3. knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
          Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
177.8.3.1. __type_7(X1) :- __type_7(X1), __def_44(X2).: see 7.8.4.1.
177.8.3.2. __def_44(X2) :- __type_7(X1), __def_44(X2).: see 7.8.4.2.
177.8.4. knows_current(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
          Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
177.8.4.1. knows_current(X1) :- knows_old(X1), knows_old(X2).: see 177.1.1.1.
177.8.4.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 177.1.1.2.
177.9. knows_current(alice) :- knows_old(alice).
        knows_old(alice) must be by knows_old(alice).
177.9.1. knows_current(alice).: see 18.1.1.2.1.2.1.
177.10. knows_current(enc(X1,X2)) :- knows_old(enc(X1,X2)).
         Examine all ways of building knows_old(enc(X1,X2)) in the body.
         The 4 possibilities are:
         knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
         knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
         knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
         knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
177.10.1. knows_current(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
           Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
177.10.1.1. knows_current(X1) :- __def_15(X1), __def_16(X2).
             Because the following simpler clause holds:
177.10.1.1.1. knows_current(X1) :- __def_15(X1).
               Without any induction hypothesis:
177.10.1.1.1.1. knows_current(X1) :- __def_15(X1).
                 By induction on X1 satisfying __def_15, must start with crypt.
177.10.1.1.1.1.1. knows_current(crypt(X1,X2)) :- __def_15(crypt(X1,X2)).
                   __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
177.10.1.1.1.1.1.1. knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                     Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
177.10.1.1.1.1.1.1.1. __def_17(X1) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.1.
177.10.1.1.1.1.1.1.2. __type_2(X2) :- __def_17(X1), __type_2(X2).: see 44.1.1.9.5.2.
177.10.1.2. knows_current(X2) :- __def_15(X1), __def_16(X2).
             Because the following simpler clause holds:
177.10.1.2.1. knows_current(X2) :- __def_16(X2).
               Without any induction hypothesis:
177.10.1.2.1.1. knows_current(X1) :- __def_16(X1).
                 By induction on X2 satisfying __def_16, must start with passwd_old.
177.10.1.2.1.1.1. knows_current(passwd_old(X1,X2)) :- __def_16(passwd_old(X1,X2)).
                   __def_16(passwd_old(X1,X2)) must be by __def_16(passwd_old(X1,X2)) :- knows_old(X1).
177.10.1.2.1.1.1.1. knows_current(passwd_old(X1,X2)) :- knows_old(X1).
                     Infer knows_current(passwd_old(X1,X2)) using knows_current(passwd_old(X1,X2)).
177.10.2. knows_current(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
           Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
177.10.2.1. knows_current(X1) :- __def_19(X1), __def_20(X2).
             Because the following simpler clause holds:
177.10.2.1.1. knows_current(X1) :- __def_19(X1).
               Without any induction hypothesis:
177.10.2.1.1.1. knows_current(X1) :- __def_19(X1).
                 By induction on X1 satisfying __def_19, must start with crypt.
177.10.2.1.1.1.1. knows_current(crypt(X1,X2)) :- __def_19(crypt(X1,X2)).
                   __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
177.10.2.1.1.1.1.1. knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
                     Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
177.10.2.1.1.1.1.1.1. __def_21(X1) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.1.
177.10.2.1.1.1.1.1.2. __def_22(X2) :- __def_21(X1), __def_22(X2).: see 44.1.1.9.4.2.
177.10.2.2. knows_current(X2) :- __def_19(X1), __def_20(X2).
             Because the following simpler clause holds:
177.10.2.2.1. knows_current(X2) :- __def_20(X2).
               Without any induction hypothesis:
177.10.2.2.1.1. knows_current(X1) :- __def_20(X1).
                 By induction on X2 satisfying __def_20, must start with passwd_old.
177.10.2.2.1.1.1. knows_current(passwd_old(X1,X2)) :- __def_20(passwd_old(X1,X2)).
                   __def_20(passwd_old(X1,X2)) must be by __def_20(passwd_old(X1,X2)) :- knows_old(X1).
177.10.2.2.1.1.1.1. knows_current(passwd_old(X1,X2)) :- knows_old(X1).: see 177.10.1.2.1.1.1.1.
177.10.3. knows_current(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
           Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
177.10.3.1. knows_current(X1) :- __def_10(X1), __def_11(X2).
             Because the following simpler clause holds:
177.10.3.1.1. knows_current(X1) :- __def_10(X1).
               Without any induction hypothesis:
177.10.3.1.1.1. knows_current(X1) :- __def_10(X1).
                 By induction on X1 satisfying __def_10, must start with key.
177.10.3.1.1.1.1. knows_current(key(X1,X2)) :- __def_10(key(X1,X2)).
                   __def_10(key(X1,X2)) must be by __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
177.10.3.1.1.1.1.1. knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
                     Infer knows_current(key(X1,X2)) using knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
177.10.3.1.1.1.1.1.1. __def_12(X1) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.1.
177.10.3.1.1.1.1.1.2. __def_13(X2) :- __def_12(X1), __def_13(X2).: see 44.1.1.7.3.2.
177.10.3.2. knows_current(X2) :- __def_10(X1), __def_11(X2).
             Because the following simpler clause holds:
177.10.3.2.1. knows_current(X2) :- __def_11(X2).
               Without any induction hypothesis:
177.10.3.2.1.1. knows_current(X1) :- __def_11(X1).
                 By induction on X2 satisfying __def_11, must start with passwd_old.
177.10.3.2.1.1.1. knows_current(passwd_old(X1,X2)) :- __def_11(passwd_old(X1,X2)).
                   __def_11(passwd_old(X1,X2)) must be by __def_11(passwd_old(X1,X2)) :- agent(X1), agent(X2).
177.10.3.2.1.1.1.1. knows_current(passwd_old(X1,X2)) :- agent(X1), agent(X2).
                     Infer knows_current(passwd_old(X1,X2)) using knows_current(passwd_old(X1,X2)).
177.10.4. knows_current(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
           Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
177.10.4.1. knows_current(X1) :- knows_old(X1), knows_old(X2).: see 177.1.1.1.
177.10.4.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 177.1.1.2.
177.11. knows_current(bob) :- knows_old(bob).
         knows_old(bob) must be by knows_old(bob).
177.11.1. knows_current(bob).: see 18.1.1.2.1.3.1.
177.12. knows_current(server) :- knows_old(server).
         knows_old(server) must be by knows_old(server).
177.12.1. knows_current(server).: see 18.1.1.2.1.4.1.
. lemma 178:178. knows_old(X1) :- knows_old(dec(X1,X2)), knows_old(X2).
      Equivalent to:
178.1. knows_old(X1) :- knows_old(X2), knows_old(dec(X1,X2)).
        knows_old(dec(X1,X2)) must be by knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
178.1.1. knows_old(X1) :- knows_old(X1), knows_old(X2), knows_old(X2).
          Equivalent to:
178.1.1.1. knows_old(X1) :- knows_old(X2), knows_old(X1).: see 172.1.
. lemma 179:179. knows_current(noncea_old(X1,X2)).
      Infer knows_current(noncea_old(X1,X2)) using knows_current(noncea_old(X1,X2)).
. lemma 180:180. knows_current(key(X1,X2)) :- agent(X2), __def_51(X1).
      Equivalent to:
180.1. knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).: see 177.6.1.
. lemma 181:181. knows_current(dec(X1,X2)) :- knows_current(X2), knows_current(X1).
      Infer knows_current(dec(X1,X2)) using knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
181.1. knows_current(X1) :- knows_current(X2), knows_current(X1).: see 162.1.
181.2. knows_current(X2) :- knows_current(X2), knows_current(X1).
        Because the following simpler clause holds:
181.2.1. knows_current(X2) :- knows_current(X2).: see 20.1.1.1.2.1.
. lemma 182:182. testable_current(crypt(X1,X2)) :- __def_116(X2), __type_28(X1).
      Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
182.1. __type_27(X1) :- __def_116(X2), __type_28(X1).
        Because the following simpler clause holds:
182.1.1. __type_27(X1) :- __type_28(X1).
          By induction on X1 satisfying __type_28, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
182.1.1.1. __type_27(dec(X1,X2)) :- __type_28(dec(X1,X2)).
            __type_28(dec(X1,X2)) must be by __type_28(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
182.1.1.1.1. __type_27(dec(X1,X2)) :- testable_current(X1), knows_current(X2).: see 102.1.1.
182.1.1.2. __type_27(s(X1)) :- __type_28(s(X1)).
            __type_28(s(X1)) must be by __type_28(s(X)) :- testable_current(X).
182.1.1.2.1. __type_27(s(X1)) :- testable_current(X1).: see 102.2.1.
182.1.1.3. __type_27(nil) :- __type_28(nil).
            __type_28(nil) must be by __type_28(nil).
182.1.1.3.1. __type_27(nil).: see 102.3.1.
182.1.1.4. __type_27(nonceb_old(X1,X2)) :- __type_28(nonceb_old(X1,X2)).
            __type_28(nonceb_old(X1,X2)) must be by __type_28(nonceb_old(X1,X2)).
182.1.1.4.1. __type_27(nonceb_old(X1,X2)).: see 102.4.1.
182.1.1.5. __type_27(i) :- __type_28(i).
            __type_28(i) must be by __type_28(i).
182.1.1.5.1. __type_27(i).: see 102.5.1.
182.1.1.6. __type_27(r_old(X1,X2)) :- __type_28(r_old(X1,X2)).
            __type_28(r_old(X1,X2)) must be by __type_28(r_old(X1,X2)) :- knows_old(X1).
182.1.1.6.1. __type_27(r_old(X1,X2)) :- knows_old(X1).: see 102.6.1.
182.1.1.7. __type_27(p(X1)) :- __type_28(p(X1)).
            __type_28(p(X1)) must be by __type_28(p(X)) :- testable_current(X).
182.1.1.7.1. __type_27(p(X1)) :- testable_current(X1).: see 102.7.1.
182.1.1.8. __type_27(key(X1,X2)) :- __type_28(key(X1,X2)).
            Examine all ways of building __type_28(key(X1,X2)) in the body.
            The 4 possibilities are:
            __type_28(key(X1,X2)) :- __def_51(X1), agent(X2).
            __type_28(key(X1,X2)) :- __def_121(X1), __type_31(X2).
            __type_28(key(X1,X2)) :- __def_118(X1), __type_29(X2).
            __type_28(key(X1,X2)) :- __def_12(X1), __def_13(X2).
182.1.1.8.1. __type_27(key(X1,X2)) :- __def_51(X1), agent(X2).: see 102.8.1.
182.1.1.8.2. __type_27(key(X1,X2)) :- __def_121(X1), __type_31(X2).: see 102.8.2.
182.1.1.8.3. __type_27(key(X1,X2)) :- __def_118(X1), __type_29(X2).: see 102.8.3.
182.1.1.8.4. __type_27(key(X1,X2)) :- __def_12(X1), __def_13(X2).: see 102.8.4.
182.1.1.9. __type_27(cons(X1,X2)) :- __type_28(cons(X1,X2)).
            Examine all ways of building __type_28(cons(X1,X2)) in the body.
            The 2 possibilities are:
            __type_28(cons(X1,X2)) :- testable_current(X1).
            __type_28(cons(X1,X2)) :- testable_current(X2).
182.1.1.9.1. __type_27(cons(X1,X2)) :- testable_current(X1).: see 102.9.1.
182.1.1.9.2. __type_27(cons(X1,X2)) :- testable_current(X2).: see 102.9.2.
182.1.1.10. __type_27(crypt(X1,X2)) :- __type_28(crypt(X1,X2)).
             Examine all ways of building __type_28(crypt(X1,X2)) in the body.
             The 11 possibilities are:
             __type_28(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
             __type_28(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
             __type_28(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
             __type_28(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
             __type_28(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
             __type_28(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
             __type_28(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
             __type_28(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
             __type_28(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
             __type_28(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
             __type_28(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
182.1.1.10.1. __type_27(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).: see 102.10.1.
182.1.1.10.2. __type_27(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 102.10.2.
182.1.1.10.3. __type_27(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).: see 102.10.3.
182.1.1.10.4. __type_27(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).: see 102.10.4.
182.1.1.10.5. __type_27(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).: see 102.10.5.
182.1.1.10.6. __type_27(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).: see 102.10.6.
182.1.1.10.7. __type_27(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).: see 102.10.7.
182.1.1.10.8. __type_27(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 102.10.8.
182.1.1.10.9. __type_27(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 102.10.9.
182.1.1.10.10. __type_27(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).: see 102.10.10.
182.1.1.10.11. __type_27(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).: see 102.10.11.
182.1.1.11. __type_27(noncea_old(X1,X2)) :- __type_28(noncea_old(X1,X2)).
             __type_28(noncea_old(X1,X2)) must be by __type_28(noncea_old(X1,X2)).
182.1.1.11.1. __type_27(noncea_old(X1,X2)).: see 102.11.1.
182.1.1.12. __type_27(alice) :- __type_28(alice).
             __type_28(alice) must be by __type_28(alice).
182.1.1.12.1. __type_27(alice).: see 102.12.1.
182.1.1.13. __type_27(enc(X1,X2)) :- __type_28(enc(X1,X2)).
             Examine all ways of building __type_28(enc(X1,X2)) in the body.
             The 4 possibilities are:
             __type_28(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
             __type_28(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
             __type_28(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
             __type_28(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
182.1.1.13.1. __type_27(enc(X1,X2)) :- __def_72(X1), __def_73(X2).: see 102.13.1.
182.1.1.13.2. __type_27(enc(X1,X2)) :- __def_80(X1), __def_81(X2).: see 102.13.2.
182.1.1.13.3. __type_27(enc(X1,X2)) :- testable_current(X1), knows_current(X2).: see 102.13.3.
182.1.1.13.4. __type_27(enc(X1,X2)) :- __def_76(X1), __def_77(X2).: see 102.13.4.
182.1.1.14. __type_27(bob) :- __type_28(bob).
             __type_28(bob) must be by __type_28(bob).
182.1.1.14.1. __type_27(bob).: see 102.14.1.
182.1.1.15. __type_27(server) :- __type_28(server).
             __type_28(server) must be by __type_28(server).
182.1.1.15.1. __type_27(server).: see 102.15.1.
182.1.1.16. __type_27(passwd_old(X1,X2)) :- __type_28(passwd_old(X1,X2)).
             __type_28(passwd_old(X1,X2)) must be by __type_28(passwd_old(X1,X2)).
182.1.1.16.1. __type_27(passwd_old(X1,X2)).: see 102.16.1.
182.2. __def_114(X2) :- __def_116(X2), __type_28(X1).
        Because the following simpler clause holds:
182.2.1. __def_114(X1) :- __def_116(X1).
          By induction on X2 satisfying __def_116: none.
. lemma 183:183. knows_current(s(X1)) :- knows_current(X1).
      Infer knows_current(s(X1)) using knows_current(s(X)) :- knows_current(X).
183.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 184:184. agent(bob).: see 18.1.1.1.1.3.1.
. lemma 185:185. testable_current(X1) :- testable_current(dec(X2,X1)), knows_current(X2).
      Equivalent to:
185.1. testable_current(X1) :- knows_current(X2), testable_current(dec(X2,X1)).
        testable_current(dec(X2,X1)) must be by testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
185.1.1. testable_current(X1) :- testable_current(X2), knows_current(X1), knows_current(X2).
          Equivalent to:
185.1.1.1. testable_current(X1) :- knows_current(X2), knows_current(X1), testable_current(X2).: see 166.3.
. lemma 186:186. testable_current(cons(X1,X2)) :- testable_current(X1).
      Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X1).
186.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
. lemma 187:187. knows_current(p(X1)) :- knows_current(X1).
      Infer knows_current(p(X1)) using knows_current(p(X)) :- knows_current(X).
187.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 188:188. testable_current(p(X1)) :- testable_current(X1).
      Infer testable_current(p(X1)) using testable_current(p(X)) :- testable_current(X).
188.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
. lemma 189:189. testable_old(X1) :- knows_old(dec(X2,X1)), testable_old(X2).
      knows_old(dec(X2,X1)) must be by knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
189.1. testable_old(X1) :- knows_old(X2), knows_old(X1), testable_old(X2).
        Because the following simpler clause holds:
189.1.1. testable_old(X1) :- knows_old(X1).: see 168.
. lemma 190:190. testable_current(key(X1,X2)) :- __type_29(X2), __def_118(X1).
      Equivalent to:
190.1. testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
        Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
190.1.1. __def_118(X1) :- __def_118(X1), __type_29(X2).: see 82.8.3.1.
190.1.2. __type_29(X2) :- __def_118(X1), __type_29(X2).: see 82.8.3.2.
. lemma 191:191. testable_current(crypt(X1,X2)) :- __def_112(X2), __type_26(X1).
      Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
191.1. __type_26(X1) :- __def_112(X2), __type_26(X1).
        Because the following simpler clause holds:
191.1.1. __type_26(X1) :- __type_26(X1).: see 82.10.7.1.1.
191.2. __def_112(X2) :- __def_112(X2), __type_26(X1).
        Because the following simpler clause holds:
191.2.1. __def_112(X2) :- __def_112(X2).: see 82.10.7.2.1.
. lemma 192:192. testable_old(enc(X1,X2)) :- knows_old(X2), testable_old(X1).
      Infer testable_old(enc(X1,X2)) using testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
192.1. testable_old(X1) :- knows_old(X2), testable_old(X1).
        Because the following simpler clause holds:
192.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
192.2. knows_old(X2) :- knows_old(X2), testable_old(X1).
        Because the following simpler clause holds:
192.2.1. knows_old(X2) :- knows_old(X2).: see 7.1.1.2.1.
. lemma 193:193. knows_old(X1) :- testable_old(dec(X2,X1)), testable_old(X2).
      Equivalent to:
193.1. knows_old(X1) :- testable_old(X2), testable_old(dec(X2,X1)).
        testable_old(dec(X2,X1)) must be by testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
193.1.1. knows_old(X1) :- testable_old(X2), knows_old(X1), testable_old(X2).: see 174.1.4.
. lemma 194:194. knows_old(p(X1)) :- knows_old(X1).
      Infer knows_old(p(X1)) using knows_old(p(X)) :- knows_old(X).
194.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 195:195. testable_current(X1) :- testable_current(crypt(X1,X2)), knows_current(X2).
      Equivalent to:
195.1. testable_current(X1) :- knows_current(X2), testable_current(crypt(X1,X2)).
        Examine all ways of building testable_current(crypt(X1,X2)) in the body.
        The 11 possibilities are:
        testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
        testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
        testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
        testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
        testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
        testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
        testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
        testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
195.1.1. testable_current(X1) :- __type_22(X1), __def_105(X2), knows_current(X2).
          Equivalent to:
195.1.1.1. testable_current(X1) :- __def_105(X2), __type_22(X1), knows_current(X2).
            Special case of:
195.1.1.1.1. #false() :- __def_105(X1), knows_current(X1).
              By induction on X1 satisfying __def_105, must start with key.
195.1.1.1.1.1. #false() :- __def_105(key(X1,X2)), knows_current(key(X1,X2)).
                __def_105(key(X1,X2)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
195.1.1.1.1.1.1. #false() :- knows_current(key(X1,X2)), __def_106(X1), __type_23(X2).
                  Examine all ways of building knows_current(key(X1,X2)) in the body.
                  The 3 possibilities are:
                  knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                  knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                  knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
195.1.1.1.1.1.1.1. #false() :- agent(X2), __type_23(X2), __def_106(X1), __def_51(X1).
                    This is implied by:
195.1.1.1.1.1.1.1.1. #false() :- __def_51(X1), __def_106(X1).
                      Without any induction hypothesis:
195.1.1.1.1.1.1.1.1.1. #false() :- __def_51(X1), __def_106(X1).
                        By induction on X1 satisfying __def_51, must start with pub.
195.1.1.1.1.1.1.1.1.1.1. #false() :- __def_51(pub), __def_106(pub).
                          __def_51(pub) is impossible.
195.1.1.1.1.1.1.2. #false() :- __def_63(X2), __def_62(X1), __type_23(X2), __def_106(X1).
                    This is implied by:
195.1.1.1.1.1.1.2.1. #false() :- __def_62(X1), __def_106(X1).
                      Without any induction hypothesis:
195.1.1.1.1.1.1.2.1.1. #false() :- __def_62(X1), __def_106(X1).
                        By induction on X1 satisfying __def_62, must start with prv.
195.1.1.1.1.1.1.2.1.1.1. #false() :- __def_62(prv), __def_106(prv).
                          __def_62(prv) is impossible.
195.1.1.1.1.1.1.3. #false() :- __type_23(X2), __def_13(X2), __def_106(X1), __def_12(X1).
                    This is implied by:
195.1.1.1.1.1.1.3.1. #false() :- __def_12(X1), __def_106(X1).
                      Without any induction hypothesis:
195.1.1.1.1.1.1.3.1.1. #false() :- __def_12(X1), __def_106(X1).
                        By induction on X1 satisfying __def_12, must start with pub.
195.1.1.1.1.1.1.3.1.1.1. #false() :- __def_12(pub), __def_106(pub).
                          __def_12(pub) is impossible.
195.1.2. testable_current(X1) :- __def_28(X1), __def_29(X2), knows_current(X2).
          Because the following simpler clause holds:
195.1.2.1. testable_current(X1) :- __def_28(X1).
            By induction on X1 satisfying __def_28, must start with cons.
195.1.2.1.1. testable_current(cons(X1,X2)) :- __def_28(cons(X1,X2)).
              __def_28(cons(X1,X2)) must be by __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
195.1.2.1.1.1. testable_current(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
                Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X1).
195.1.2.1.1.1.1. testable_current(X1) :- __type_5(X1), __def_30(X2).
                  Because the following simpler clause holds:
195.1.2.1.1.1.1.1. testable_current(X1) :- __type_5(X1).
                    Without any induction hypothesis:
195.1.2.1.1.1.1.1.1. testable_current(X1) :- __type_5(X1).
                      By induction on X1 satisfying __type_5, X1 must start with nonceb_old, cons or noncea_old.
195.1.2.1.1.1.1.1.1.1. testable_current(nonceb_old(X1,X2)) :- __type_5(nonceb_old(X1,X2)).
                        __type_5(nonceb_old(X1,X2)) must be by __type_5(nonceb_old(X1,X2)) :- knows_old(X1).
195.1.2.1.1.1.1.1.1.1.1. testable_current(nonceb_old(X1,X2)) :- knows_old(X1).
                          Infer testable_current(nonceb_old(X1,X2)) using testable_current(nonceb_old(X1,X2)).
195.1.2.1.1.1.1.1.1.2. testable_current(cons(X1,X2)) :- __type_5(cons(X1,X2)).
                        __type_5(cons(X1,X2)) must be by __type_5(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
195.1.2.1.1.1.1.1.1.2.1. testable_current(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
                          Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X1).
195.1.2.1.1.1.1.1.1.2.1.1. testable_current(X1) :- __type_5(X1), __def_30(X2).
                            Because the following simpler clause holds:
195.1.2.1.1.1.1.1.1.2.1.1.1. testable_current(X1) :- __type_5(X1).
                              By induction hypothesis testable_current(X1) :- __type_5(X1)..
195.1.2.1.1.1.1.1.1.3. testable_current(noncea_old(X1,X2)) :- __type_5(noncea_old(X1,X2)).
                        __type_5(noncea_old(X1,X2)) must be by __type_5(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
195.1.2.1.1.1.1.1.1.3.1. testable_current(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
                          Infer testable_current(noncea_old(X1,X2)) using testable_current(noncea_old(X1,X2)).
195.1.3. testable_current(X1) :- __def_85(X1), __def_86(X2), knows_current(X2).
          Special case of:
195.1.3.1. #false() :- knows_current(X1), __def_86(X1).
            By induction on X1 satisfying knows_current, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
195.1.3.1.1. #false() :- knows_current(dec(X1,X2)), __def_86(dec(X1,X2)).
              knows_current(dec(X1,X2)) is impossible.
195.1.3.1.2. #false() :- knows_current(s(X1)), __def_86(s(X1)).
              knows_current(s(X1)) is impossible.
195.1.3.1.3. #false() :- knows_current(nil), __def_86(nil).
              knows_current(nil) is impossible.
195.1.3.1.4. #false() :- knows_current(nonceb_old(X1,X2)), __def_86(nonceb_old(X1,X2)).
              knows_current(nonceb_old(X1,X2)) is impossible.
195.1.3.1.5. #false() :- knows_current(i), __def_86(i).
              knows_current(i) is impossible.
195.1.3.1.6. #false() :- knows_current(p(X1)), __def_86(p(X1)).
              knows_current(p(X1)) is impossible.
195.1.3.1.7. #false() :- knows_current(key(X1,X2)), __def_86(key(X1,X2)).
              Examine all ways of building knows_current(key(X1,X2)) in the body.
              The 3 possibilities are:
              knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
              knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
              knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
195.1.3.1.7.1. #false() :- __def_86(key(X1,X2)), __def_51(X1), agent(X2).
                __def_86(key(X1,X2)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
195.1.3.1.7.1.1. #false() :- agent(X2), __def_51(X1), __type_19(X2), __def_87(X1).
                  This is implied by:
195.1.3.1.7.1.1.1. #false() :- __def_51(X1), __def_87(X1).
                    Without any induction hypothesis:
195.1.3.1.7.1.1.1.1. #false() :- __def_51(X1), __def_87(X1).
                      By induction on X1 satisfying __def_51, must start with pub.
195.1.3.1.7.1.1.1.1.1. #false() :- __def_51(pub), __def_87(pub).
                        __def_51(pub) is impossible.
195.1.3.1.7.2. #false() :- __def_86(key(X1,X2)), __def_62(X1), __def_63(X2).
                __def_86(key(X1,X2)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
195.1.3.1.7.2.1. #false() :- __def_63(X2), __def_62(X1), __type_19(X2), __def_87(X1).
                  This is implied by:
195.1.3.1.7.2.1.1. #false() :- __def_87(X1), __def_62(X1).
                    Without any induction hypothesis:
195.1.3.1.7.2.1.1.1. #false() :- __def_87(X1), __def_62(X1).
                      By induction on X1 satisfying __def_87, must start with sym.
195.1.3.1.7.2.1.1.1.1. #false() :- __def_87(sym), __def_62(sym).
                        __def_87(sym) is impossible.
195.1.3.1.7.3. #false() :- __def_86(key(X1,X2)), __def_12(X1), __def_13(X2).
                __def_86(key(X1,X2)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
195.1.3.1.7.3.1. #false() :- __def_13(X2), __type_19(X2), __def_87(X1), __def_12(X1).
                  This is implied by:
195.1.3.1.7.3.1.1. #false() :- __def_12(X1), __def_87(X1).
                    Without any induction hypothesis:
195.1.3.1.7.3.1.1.1. #false() :- __def_12(X1), __def_87(X1).
                      By induction on X1 satisfying __def_12, must start with pub.
195.1.3.1.7.3.1.1.1.1. #false() :- __def_12(pub), __def_87(pub).
                        __def_12(pub) is impossible.
195.1.3.1.8. #false() :- knows_current(cons(X1,X2)), __def_86(cons(X1,X2)).
              knows_current(cons(X1,X2)) is impossible.
195.1.3.1.9. #false() :- knows_current(crypt(X1,X2)), __def_86(crypt(X1,X2)).
              knows_current(crypt(X1,X2)) is impossible.
195.1.3.1.10. #false() :- knows_current(noncea_old(X1,X2)), __def_86(noncea_old(X1,X2)).
               knows_current(noncea_old(X1,X2)) is impossible.
195.1.3.1.11. #false() :- knows_current(alice), __def_86(alice).
               knows_current(alice) is impossible.
195.1.3.1.12. #false() :- knows_current(enc(X1,X2)), __def_86(enc(X1,X2)).
               knows_current(enc(X1,X2)) is impossible.
195.1.3.1.13. #false() :- knows_current(bob), __def_86(bob).
               knows_current(bob) is impossible.
195.1.3.1.14. #false() :- knows_current(server), __def_86(server).
               knows_current(server) is impossible.
195.1.3.1.15. #false() :- knows_current(passwd_old(X1,X2)), __def_86(passwd_old(X1,X2)).
               knows_current(passwd_old(X1,X2)) is impossible.
195.1.4. testable_current(X1) :- __def_21(X1), __def_22(X2), knows_current(X2).
          Because the following simpler clause holds:
195.1.4.1. testable_current(X1) :- __def_21(X1).
            By induction on X1 satisfying __def_21, must start with r_old.
195.1.4.1.1. testable_current(r_old(X1,X2)) :- __def_21(r_old(X1,X2)).
              __def_21(r_old(X1,X2)) must be by __def_21(r_old(X1,X2)) :- knows_old(X1).
195.1.4.1.1.1. testable_current(r_old(X1,X2)) :- knows_old(X1).
                Infer testable_current(r_old(X1,X2)) using testable_current(r_old(X1,X2)) :- knows_old(X1).
195.1.4.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
195.1.5. testable_current(X1) :- __type_27(X1), __def_114(X2), knows_current(X2).
          Equivalent to:
195.1.5.1. testable_current(X1) :- __def_114(X2), __type_27(X1), knows_current(X2).
            Because the following simpler clause holds:
195.1.5.1.1. testable_current(X1) :- __type_27(X1).
              By induction on X1 satisfying __type_27, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
195.1.5.1.1.1. testable_current(dec(X1,X2)) :- __type_27(dec(X1,X2)).
                __type_27(dec(X1,X2)) must be by __type_27(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
195.1.5.1.1.1.1. testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
                  Infer testable_current(dec(X1,X2)) using testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
195.1.5.1.1.1.1.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
195.1.5.1.1.1.1.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
195.1.5.1.1.2. testable_current(s(X1)) :- __type_27(s(X1)).
                __type_27(s(X1)) must be by __type_27(s(X)) :- testable_current(X).
195.1.5.1.1.2.1. testable_current(s(X1)) :- testable_current(X1).
                  Infer testable_current(s(X1)) using testable_current(s(X)) :- testable_current(X).
195.1.5.1.1.2.1.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
195.1.5.1.1.3. testable_current(nil) :- __type_27(nil).
                __type_27(nil) must be by __type_27(nil).
195.1.5.1.1.3.1. testable_current(nil).: see 166.3.1.3.1.
195.1.5.1.1.4. testable_current(nonceb_old(X1,X2)) :- __type_27(nonceb_old(X1,X2)).
                __type_27(nonceb_old(X1,X2)) must be by __type_27(nonceb_old(X1,X2)).
195.1.5.1.1.4.1. testable_current(nonceb_old(X1,X2)).: see 166.3.1.4.1.
195.1.5.1.1.5. testable_current(i) :- __type_27(i).
                __type_27(i) must be by __type_27(i).
195.1.5.1.1.5.1. testable_current(i).: see 166.3.1.5.1.
195.1.5.1.1.6. testable_current(r_old(X1,X2)) :- __type_27(r_old(X1,X2)).
                __type_27(r_old(X1,X2)) must be by __type_27(r_old(X1,X2)) :- knows_old(X1).
195.1.5.1.1.6.1. testable_current(r_old(X1,X2)) :- knows_old(X1).: see 195.1.4.1.1.1.
195.1.5.1.1.7. testable_current(p(X1)) :- __type_27(p(X1)).
                __type_27(p(X1)) must be by __type_27(p(X)) :- testable_current(X).
195.1.5.1.1.7.1. testable_current(p(X1)) :- testable_current(X1).: see 188.
195.1.5.1.1.8. testable_current(key(X1,X2)) :- __type_27(key(X1,X2)).
                Examine all ways of building __type_27(key(X1,X2)) in the body.
                The 4 possibilities are:
                __type_27(key(X1,X2)) :- __def_51(X1), agent(X2).
                __type_27(key(X1,X2)) :- __def_121(X1), __type_31(X2).
                __type_27(key(X1,X2)) :- __def_118(X1), __type_29(X2).
                __type_27(key(X1,X2)) :- __def_12(X1), __def_13(X2).
195.1.5.1.1.8.1. testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).: see 166.3.1.7.1.
195.1.5.1.1.8.2. testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).: see 175.1.
195.1.5.1.1.8.3. testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).: see 190.1.
195.1.5.1.1.8.4. testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).: see 166.3.1.7.3.
195.1.5.1.1.9. testable_current(cons(X1,X2)) :- __type_27(cons(X1,X2)).
                Examine all ways of building __type_27(cons(X1,X2)) in the body.
                The 2 possibilities are:
                __type_27(cons(X1,X2)) :- testable_current(X1).
                __type_27(cons(X1,X2)) :- testable_current(X2).
195.1.5.1.1.9.1. testable_current(cons(X1,X2)) :- testable_current(X1).: see 186.
195.1.5.1.1.9.2. testable_current(cons(X1,X2)) :- testable_current(X2).
                  Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X2).
195.1.5.1.1.9.2.1. testable_current(X2) :- testable_current(X2).: see 82.9.2.1.
195.1.5.1.1.10. testable_current(crypt(X1,X2)) :- __type_27(crypt(X1,X2)).
                 Examine all ways of building __type_27(crypt(X1,X2)) in the body.
                 The 11 possibilities are:
                 __type_27(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
                 __type_27(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                 __type_27(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
                 __type_27(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
                 __type_27(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
                 __type_27(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                 __type_27(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
                 __type_27(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                 __type_27(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                 __type_27(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
                 __type_27(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
195.1.5.1.1.10.1. testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).: see 166.3.1.9.1.
195.1.5.1.1.10.2. testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 166.3.1.9.2.
195.1.5.1.1.10.3. testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).: see 166.3.1.9.3.
195.1.5.1.1.10.4. testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).: see 166.3.1.9.4.
195.1.5.1.1.10.5. testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
                   Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
195.1.5.1.1.10.5.1. __type_27(X1) :- __type_27(X1), __def_114(X2).: see 82.10.5.1.
195.1.5.1.1.10.5.2. __def_114(X2) :- __type_27(X1), __def_114(X2).: see 82.10.5.2.
195.1.5.1.1.10.6. testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).: see 166.3.1.9.5.
195.1.5.1.1.10.7. testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
                   Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
195.1.5.1.1.10.7.1. __type_26(X1) :- __type_26(X1), __def_112(X2).: see 82.10.7.1.
195.1.5.1.1.10.7.2. __def_112(X2) :- __type_26(X1), __def_112(X2).: see 82.10.7.2.
195.1.5.1.1.10.8. testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 166.3.1.9.6.
195.1.5.1.1.10.9. testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 166.3.1.9.7.
195.1.5.1.1.10.10. testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).: see 166.3.1.9.8.
195.1.5.1.1.10.11. testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).: see 166.3.1.9.9.
195.1.5.1.1.11. testable_current(noncea_old(X1,X2)) :- __type_27(noncea_old(X1,X2)).
                 __type_27(noncea_old(X1,X2)) must be by __type_27(noncea_old(X1,X2)).
195.1.5.1.1.11.1. testable_current(noncea_old(X1,X2)).: see 166.3.1.10.1.
195.1.5.1.1.12. testable_current(alice) :- __type_27(alice).
                 __type_27(alice) must be by __type_27(alice).
195.1.5.1.1.12.1. testable_current(alice).: see 166.3.1.11.1.
195.1.5.1.1.13. testable_current(enc(X1,X2)) :- __type_27(enc(X1,X2)).
                 Examine all ways of building __type_27(enc(X1,X2)) in the body.
                 The 4 possibilities are:
                 __type_27(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
                 __type_27(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
                 __type_27(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
                 __type_27(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
195.1.5.1.1.13.1. testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).: see 166.3.1.12.1.
195.1.5.1.1.13.2. testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).: see 166.3.1.12.2.
195.1.5.1.1.13.3. testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
                   Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
195.1.5.1.1.13.3.1. testable_current(X1) :- testable_current(X1), knows_current(X2).: see 82.1.1.1.
195.1.5.1.1.13.3.2. knows_current(X2) :- testable_current(X1), knows_current(X2).: see 82.1.1.2.
195.1.5.1.1.13.4. testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).: see 166.3.1.12.4.
195.1.5.1.1.14. testable_current(bob) :- __type_27(bob).
                 __type_27(bob) must be by __type_27(bob).
195.1.5.1.1.14.1. testable_current(bob).: see 166.3.1.13.1.
195.1.5.1.1.15. testable_current(server) :- __type_27(server).
                 __type_27(server) must be by __type_27(server).
195.1.5.1.1.15.1. testable_current(server).: see 166.3.1.14.1.
195.1.5.1.1.16. testable_current(passwd_old(X1,X2)) :- __type_27(passwd_old(X1,X2)).
                 __type_27(passwd_old(X1,X2)) must be by __type_27(passwd_old(X1,X2)).
195.1.5.1.1.16.1. testable_current(passwd_old(X1,X2)).: see 166.3.1.15.1.
195.1.6. testable_current(X1) :- __def_17(X1), __type_2(X2), knows_current(X2).
          Because the following simpler clause holds:
195.1.6.1. testable_current(X1) :- __def_17(X1).
            By induction on X1 satisfying __def_17, must start with r_old.
195.1.6.1.1. testable_current(r_old(X1,X2)) :- __def_17(r_old(X1,X2)).
              __def_17(r_old(X1,X2)) must be by __def_17(r_old(X1,X2)) :- knows_old(X1).
195.1.6.1.1.1. testable_current(r_old(X1,X2)) :- knows_old(X1).: see 195.1.4.1.1.1.
195.1.7. testable_current(X1) :- __type_26(X1), __def_112(X2), knows_current(X2).
          Equivalent to:
195.1.7.1. testable_current(X1) :- __def_112(X2), __type_26(X1), knows_current(X2).
            Because the following simpler clause holds:
195.1.7.1.1. testable_current(X1) :- __type_26(X1).
              By induction on X1 satisfying __type_26, X1 must start with dec, s, nil, nonceb_old, i, r_old, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
195.1.7.1.1.1. testable_current(dec(X1,X2)) :- __type_26(dec(X1,X2)).
                __type_26(dec(X1,X2)) must be by __type_26(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
195.1.7.1.1.1.1. testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).: see 195.1.5.1.1.1.1.
195.1.7.1.1.2. testable_current(s(X1)) :- __type_26(s(X1)).
                __type_26(s(X1)) must be by __type_26(s(X)) :- testable_current(X).
195.1.7.1.1.2.1. testable_current(s(X1)) :- testable_current(X1).: see 195.1.5.1.1.2.1.
195.1.7.1.1.3. testable_current(nil) :- __type_26(nil).
                __type_26(nil) must be by __type_26(nil).
195.1.7.1.1.3.1. testable_current(nil).: see 166.3.1.3.1.
195.1.7.1.1.4. testable_current(nonceb_old(X1,X2)) :- __type_26(nonceb_old(X1,X2)).
                __type_26(nonceb_old(X1,X2)) must be by __type_26(nonceb_old(X1,X2)).
195.1.7.1.1.4.1. testable_current(nonceb_old(X1,X2)).: see 166.3.1.4.1.
195.1.7.1.1.5. testable_current(i) :- __type_26(i).
                __type_26(i) must be by __type_26(i).
195.1.7.1.1.5.1. testable_current(i).: see 166.3.1.5.1.
195.1.7.1.1.6. testable_current(r_old(X1,X2)) :- __type_26(r_old(X1,X2)).
                __type_26(r_old(X1,X2)) must be by __type_26(r_old(X1,X2)) :- knows_old(X1).
195.1.7.1.1.6.1. testable_current(r_old(X1,X2)) :- knows_old(X1).: see 195.1.4.1.1.1.
195.1.7.1.1.7. testable_current(p(X1)) :- __type_26(p(X1)).
                __type_26(p(X1)) must be by __type_26(p(X)) :- testable_current(X).
195.1.7.1.1.7.1. testable_current(p(X1)) :- testable_current(X1).: see 188.
195.1.7.1.1.8. testable_current(key(X1,X2)) :- __type_26(key(X1,X2)).
                Examine all ways of building __type_26(key(X1,X2)) in the body.
                The 4 possibilities are:
                __type_26(key(X1,X2)) :- __def_51(X1), agent(X2).
                __type_26(key(X1,X2)) :- __def_121(X1), __type_31(X2).
                __type_26(key(X1,X2)) :- __def_118(X1), __type_29(X2).
                __type_26(key(X1,X2)) :- __def_12(X1), __def_13(X2).
195.1.7.1.1.8.1. testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).: see 166.3.1.7.1.
195.1.7.1.1.8.2. testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).: see 175.1.
195.1.7.1.1.8.3. testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).: see 190.1.
195.1.7.1.1.8.4. testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).: see 166.3.1.7.3.
195.1.7.1.1.9. testable_current(cons(X1,X2)) :- __type_26(cons(X1,X2)).
                Examine all ways of building __type_26(cons(X1,X2)) in the body.
                The 2 possibilities are:
                __type_26(cons(X1,X2)) :- testable_current(X1).
                __type_26(cons(X1,X2)) :- testable_current(X2).
195.1.7.1.1.9.1. testable_current(cons(X1,X2)) :- testable_current(X1).: see 186.
195.1.7.1.1.9.2. testable_current(cons(X1,X2)) :- testable_current(X2).: see 195.1.5.1.1.9.2.
195.1.7.1.1.10. testable_current(crypt(X1,X2)) :- __type_26(crypt(X1,X2)).
                 Examine all ways of building __type_26(crypt(X1,X2)) in the body.
                 The 11 possibilities are:
                 __type_26(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
                 __type_26(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                 __type_26(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
                 __type_26(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
                 __type_26(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
                 __type_26(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                 __type_26(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
                 __type_26(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                 __type_26(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                 __type_26(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
                 __type_26(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
195.1.7.1.1.10.1. testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).: see 166.3.1.9.1.
195.1.7.1.1.10.2. testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 166.3.1.9.2.
195.1.7.1.1.10.3. testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).: see 166.3.1.9.3.
195.1.7.1.1.10.4. testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).: see 166.3.1.9.4.
195.1.7.1.1.10.5. testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).: see 195.1.5.1.1.10.5.
195.1.7.1.1.10.6. testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).: see 166.3.1.9.5.
195.1.7.1.1.10.7. testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).: see 195.1.5.1.1.10.7.
195.1.7.1.1.10.8. testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 166.3.1.9.6.
195.1.7.1.1.10.9. testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 166.3.1.9.7.
195.1.7.1.1.10.10. testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).: see 166.3.1.9.8.
195.1.7.1.1.10.11. testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).: see 166.3.1.9.9.
195.1.7.1.1.11. testable_current(noncea_old(X1,X2)) :- __type_26(noncea_old(X1,X2)).
                 __type_26(noncea_old(X1,X2)) must be by __type_26(noncea_old(X1,X2)).
195.1.7.1.1.11.1. testable_current(noncea_old(X1,X2)).: see 166.3.1.10.1.
195.1.7.1.1.12. testable_current(alice) :- __type_26(alice).
                 __type_26(alice) must be by __type_26(alice).
195.1.7.1.1.12.1. testable_current(alice).: see 166.3.1.11.1.
195.1.7.1.1.13. testable_current(enc(X1,X2)) :- __type_26(enc(X1,X2)).
                 Examine all ways of building __type_26(enc(X1,X2)) in the body.
                 The 4 possibilities are:
                 __type_26(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
                 __type_26(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
                 __type_26(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
                 __type_26(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
195.1.7.1.1.13.1. testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).: see 166.3.1.12.1.
195.1.7.1.1.13.2. testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).: see 166.3.1.12.2.
195.1.7.1.1.13.3. testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).: see 195.1.5.1.1.13.3.
195.1.7.1.1.13.4. testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).: see 166.3.1.12.4.
195.1.7.1.1.14. testable_current(bob) :- __type_26(bob).
                 __type_26(bob) must be by __type_26(bob).
195.1.7.1.1.14.1. testable_current(bob).: see 166.3.1.13.1.
195.1.7.1.1.15. testable_current(server) :- __type_26(server).
                 __type_26(server) must be by __type_26(server).
195.1.7.1.1.15.1. testable_current(server).: see 166.3.1.14.1.
195.1.7.1.1.16. testable_current(passwd_old(X1,X2)) :- __type_26(passwd_old(X1,X2)).
                 __type_26(passwd_old(X1,X2)) must be by __type_26(passwd_old(X1,X2)).
195.1.7.1.1.16.1. testable_current(passwd_old(X1,X2)).: see 166.3.1.15.1.
195.1.8. testable_current(X1) :- __def_24(X1), __def_25(X2), knows_current(X2).
          Because the following simpler clause holds:
195.1.8.1. testable_current(X1) :- __def_24(X1).
            By induction on X1 satisfying __def_24, must start with noncea_old.
195.1.8.1.1. testable_current(noncea_old(X1,X2)) :- __def_24(noncea_old(X1,X2)).
              __def_24(noncea_old(X1,X2)) must be by __def_24(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).
195.1.8.1.1.1. testable_current(noncea_old(X1,X2)) :- agent(X1), __type_1(X1), agent(X2).: see 195.1.2.1.1.1.1.1.1.3.1.
195.1.9. testable_current(X1) :- __type_7(X1), __def_44(X2), knows_current(X2).
          Equivalent to:
195.1.9.1. testable_current(X1) :- __def_44(X2), __type_7(X1), knows_current(X2).
            Because the following simpler clause holds:
195.1.9.1.1. testable_current(X1) :- __type_7(X1).
              By induction on X1 satisfying __type_7, must start with nonceb_old.
195.1.9.1.1.1. testable_current(nonceb_old(X1,X2)) :- __type_7(nonceb_old(X1,X2)).
                __type_7(nonceb_old(X1,X2)) must be by __type_7(nonceb_old(X1,X2)) :- knows_old(X1).
195.1.9.1.1.1.1. testable_current(nonceb_old(X1,X2)) :- knows_old(X1).: see 195.1.2.1.1.1.1.1.1.1.1.
195.1.10. testable_current(X1) :- __def_97(X1), __def_98(X2), knows_current(X2).
           Because the following simpler clause holds:
195.1.10.1. testable_current(X1) :- __def_97(X1).
             By induction on X1 satisfying __def_97, must start with cons.
195.1.10.1.1. testable_current(cons(X1,X2)) :- __def_97(cons(X1,X2)).
               __def_97(cons(X1,X2)) must be by __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
195.1.10.1.1.1. testable_current(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
                 Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X2).
195.1.10.1.1.1.1. testable_current(X2) :- __type_21(X1), __def_99(X2).
                   Because the following simpler clause holds:
195.1.10.1.1.1.1.1. testable_current(X2) :- __def_99(X2).
                     Without any induction hypothesis:
195.1.10.1.1.1.1.1.1. testable_current(X1) :- __def_99(X1).
                       By induction on X2 satisfying __def_99, must start with cons.
195.1.10.1.1.1.1.1.1.1. testable_current(cons(X1,X2)) :- __def_99(cons(X1,X2)).
                         __def_99(cons(X1,X2)) must be by __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
195.1.10.1.1.1.1.1.1.1.1. testable_current(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
                           Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X2).
195.1.10.1.1.1.1.1.1.1.1.1. testable_current(X2) :- __def_100(X1), __def_101(X2).
                             Because the following simpler clause holds:
195.1.10.1.1.1.1.1.1.1.1.1.1. testable_current(X2) :- __def_101(X2).
                               Without any induction hypothesis:
195.1.10.1.1.1.1.1.1.1.1.1.1.1. testable_current(X1) :- __def_101(X1).
                                 By induction on X2 satisfying __def_101, must start with nil.
195.1.10.1.1.1.1.1.1.1.1.1.1.1.1. testable_current(nil) :- __def_101(nil).
                                   __def_101(nil) must be by __def_101(nil).
195.1.10.1.1.1.1.1.1.1.1.1.1.1.1.1. testable_current(nil).: see 166.3.1.3.1.
195.1.11. testable_current(X1) :- knows_current(X1), knows_current(X2), knows_current(X2).
           Equivalent to:
195.1.11.1. testable_current(X1) :- knows_current(X2), knows_current(X1).
             Because the following simpler clause holds:
195.1.11.1.1. testable_current(X1) :- knows_current(X1).: see 166.3.1.
. lemma 196:196. knows_old(X1) :- knows_old(cons(X2,X1)).
      knows_old(cons(X2,X1)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
196.1. knows_old(X1) :- knows_old(X2), knows_old(X1).: see 172.1.
. lemma 197:197. knows_old(crypt(X1,X2)) :- knows_old(X2), knows_old(X1).
      Infer knows_old(crypt(X1,X2)) using knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
197.1. knows_old(X1) :- knows_old(X2), knows_old(X1).: see 172.1.
197.2. knows_old(X2) :- knows_old(X2), knows_old(X1).: see 172.2.
. lemma 198:198. testable_old(cons(X1,X2)) :- testable_old(X1).
      Infer testable_old(cons(X1,X2)) using testable_old(cons(X1,X2)) :- testable_old(X1).
198.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
. lemma 199:199. knows_old(crypt(X1,X2)) :- __def_29(X2), __def_28(X1).
      Equivalent to:
199.1. knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        Infer knows_old(crypt(X1,X2)) using knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
199.1.1. __def_28(X1) :- __def_28(X1), __def_29(X2).: see 7.8.2.1.
199.1.2. __def_29(X2) :- __def_28(X1), __def_29(X2).: see 7.8.2.2.
. lemma 200:200. knows_old(cons(X1,X2)) :- __def_7(X2), __type_1(X1).
      Infer knows_old(cons(X1,X2)) using knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
200.1. knows_old(X1) :- __def_7(X2), __type_1(X1).
        Because the following simpler clause holds:
200.1.1. knows_old(X1) :- __type_1(X1).: see 32.1.1.1.1.
200.2. knows_old(X2) :- __def_7(X2), __type_1(X1).
        Because the following simpler clause holds:
200.2.1. knows_old(X1) :- __def_7(X1).
          By induction on X2 satisfying __def_7, must start with cons.
200.2.1.1. knows_old(cons(X1,X2)) :- __def_7(cons(X1,X2)).
            __def_7(cons(X1,X2)) must be by __def_7(cons(X1,X2)) :- __def_8(X1), __def_9(X2).
200.2.1.1.1. knows_old(cons(X1,X2)) :- __def_8(X1), __def_9(X2).
              Infer knows_old(cons(X1,X2)) using knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
200.2.1.1.1.1. knows_old(X1) :- __def_8(X1), __def_9(X2).
                Because the following simpler clause holds:
200.2.1.1.1.1.1. knows_old(X1) :- __def_8(X1).
                  Without any induction hypothesis:
200.2.1.1.1.1.1.1. knows_old(X1) :- __def_8(X1).
                    By induction on X1 satisfying __def_8, must start with enc.
200.2.1.1.1.1.1.1.1. knows_old(enc(X1,X2)) :- __def_8(enc(X1,X2)).
                      __def_8(enc(X1,X2)) must be by __def_8(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
200.2.1.1.1.1.1.1.1.1. knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                        Infer knows_old(enc(X1,X2)) using knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
200.2.1.1.1.1.1.1.1.1.1. __def_10(X1) :- __def_10(X1), __def_11(X2).: see 7.10.3.1.
200.2.1.1.1.1.1.1.1.1.2. __def_11(X2) :- __def_10(X1), __def_11(X2).: see 7.10.3.2.
200.2.1.1.1.2. knows_old(X2) :- __def_8(X1), __def_9(X2).
                Because the following simpler clause holds:
200.2.1.1.1.2.1. knows_old(X2) :- __def_9(X2).
                  Without any induction hypothesis:
200.2.1.1.1.2.1.1. knows_old(X1) :- __def_9(X1).
                    By induction on X2 satisfying __def_9, must start with nil.
200.2.1.1.1.2.1.1.1. knows_old(nil) :- __def_9(nil).
                      __def_9(nil) must be by __def_9(nil).
200.2.1.1.1.2.1.1.1.1. knows_old(nil).
                        Infer knows_old(nil) using knows_old(nil).
. lemma 201:201. testable_old(crypt(X1,X2)) :- __def_54(X2), __type_12(X1).
      Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
201.1. __type_12(X1) :- __def_54(X2), __type_12(X1).
        Because the following simpler clause holds:
201.1.1. __type_12(X1) :- __type_12(X1).: see 7.8.1.1.1.
201.2. __def_54(X2) :- __def_54(X2), __type_12(X1).
        Because the following simpler clause holds:
201.2.1. __def_54(X2) :- __def_54(X2).: see 7.8.1.2.1.
. lemma 202:202. bob_key_old (X1,X2) :- __def_48(X2), __type_9(X1).
      Infer bob_key_old (X1,X2) using bob_key_old(X1,X2).
. lemma 203:203. knows_old(X1) :- knows_old(s(X1)).
      knows_old(s(X1)) must be by knows_old(s(X)) :- knows_old(X).
203.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 204:204. knows_old(nil).: see 200.2.1.1.1.2.1.1.1.1.
. lemma 205:205. testable_current(X1) :- testable_current(crypt(X2,X1)), knows_current(X2).
      Equivalent to:
205.1. testable_current(X1) :- knows_current(X2), testable_current(crypt(X2,X1)).
        Examine all ways of building testable_current(crypt(X2,X1)) in the body.
        The 11 possibilities are:
        testable_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
        testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        testable_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
        testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
        testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
        testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
        testable_current(crypt(X1,X2)) :- __type_26(X1), __def_112(X2).
        testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        testable_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
        testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
205.1.1. testable_current(X1) :- __type_22(X2), __def_105(X1), knows_current(X2).
          Equivalent to:
205.1.1.1. testable_current(X1) :- __def_105(X1), __type_22(X2), knows_current(X2).
            Because the following simpler clause holds:
205.1.1.1.1. testable_current(X1) :- __def_105(X1).
              By induction on X1 satisfying __def_105, must start with key.
205.1.1.1.1.1. testable_current(key(X1,X2)) :- __def_105(key(X1,X2)).
                __def_105(key(X1,X2)) must be by __def_105(key(X1,X2)) :- __def_106(X1), __type_23(X2).
205.1.1.1.1.1.1. testable_current(key(X1,X2)) :- __def_106(X1), __type_23(X2).
                  Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
205.1.1.1.1.1.1.1. __def_121(X1) :- __def_106(X1), __type_23(X2).
                    Because the following simpler clause holds:
205.1.1.1.1.1.1.1.1. __def_121(X1) :- __def_106(X1).
                      Without any induction hypothesis:
205.1.1.1.1.1.1.1.1.1. __def_121(X1) :- __def_106(X1).
                        By induction on X1 satisfying __def_106, must start with sym.
205.1.1.1.1.1.1.1.1.1.1. __def_121(sym) :- __def_106(sym).
                          __def_106(sym) must be by __def_106(sym).
205.1.1.1.1.1.1.1.1.1.1.1. __def_121(sym).: see 1.
205.1.1.1.1.1.1.2. __type_31(X2) :- __def_106(X1), __type_23(X2).
                    Because the following simpler clause holds:
205.1.1.1.1.1.1.2.1. __type_31(X2) :- __type_23(X2).
                      Without any induction hypothesis:
205.1.1.1.1.1.1.2.1.1. __type_31(X1) :- __type_23(X1).
                        By induction on X2 satisfying __type_23, must start with r_current.
205.1.1.1.1.1.1.2.1.1.1. __type_31(r_current(X1,X2)) :- __type_23(r_current(X1,X2)).: see 62.4.1.1.1.
205.1.2. testable_current(X1) :- __def_28(X2), __def_29(X1), knows_current(X2).
          Because the following simpler clause holds:
205.1.2.1. testable_current(X1) :- __def_29(X1).
            By induction on X1 satisfying __def_29, must start with key.
205.1.2.1.1. testable_current(key(X1,X2)) :- __def_29(key(X1,X2)).
              __def_29(key(X1,X2)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
205.1.2.1.1.1. testable_current(key(X1,X2)) :- __def_33(X1), __def_34(X2).
                Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
205.1.2.1.1.1.1. __def_121(X1) :- __def_33(X1), __def_34(X2).
                  Because the following simpler clause holds:
205.1.2.1.1.1.1.1. __def_121(X1) :- __def_33(X1).
                    Without any induction hypothesis:
205.1.2.1.1.1.1.1.1. __def_121(X1) :- __def_33(X1).
                      By induction on X1 satisfying __def_33, must start with sym.
205.1.2.1.1.1.1.1.1.1. __def_121(sym) :- __def_33(sym).
                        __def_33(sym) must be by __def_33(sym).
205.1.2.1.1.1.1.1.1.1.1. __def_121(sym).: see 1.
205.1.2.1.1.1.2. __type_31(X2) :- __def_33(X1), __def_34(X2).
                  Because the following simpler clause holds:
205.1.2.1.1.1.2.1. __type_31(X2) :- __def_34(X2).
                    Without any induction hypothesis:
205.1.2.1.1.1.2.1.1. __type_31(X1) :- __def_34(X1).
                      By induction on X2 satisfying __def_34, must start with r_old.
205.1.2.1.1.1.2.1.1.1. __type_31(r_old(X1,X2)) :- __def_34(r_old(X1,X2)).
                        __def_34(r_old(X1,X2)) must be by __def_34(r_old(X1,X2)) :- knows_old(X1).
205.1.2.1.1.1.2.1.1.1.1. __type_31(r_old(X1,X2)) :- knows_old(X1).: see 62.1.1.1.1.1.
205.1.3. testable_current(X1) :- __def_85(X2), __def_86(X1), knows_current(X2).
          Because the following simpler clause holds:
205.1.3.1. testable_current(X1) :- __def_86(X1).
            By induction on X1 satisfying __def_86, must start with key.
205.1.3.1.1. testable_current(key(X1,X2)) :- __def_86(key(X1,X2)).
              __def_86(key(X1,X2)) must be by __def_86(key(X1,X2)) :- __def_87(X1), __type_19(X2).
205.1.3.1.1.1. testable_current(key(X1,X2)) :- __def_87(X1), __type_19(X2).
                Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
205.1.3.1.1.1.1. __def_121(X1) :- __def_87(X1), __type_19(X2).
                  Because the following simpler clause holds:
205.1.3.1.1.1.1.1. __def_121(X1) :- __def_87(X1).
                    Without any induction hypothesis:
205.1.3.1.1.1.1.1.1. __def_121(X1) :- __def_87(X1).
                      By induction on X1 satisfying __def_87, must start with sym.
205.1.3.1.1.1.1.1.1.1. __def_121(sym) :- __def_87(sym).
                        __def_87(sym) must be by __def_87(sym).
205.1.3.1.1.1.1.1.1.1.1. __def_121(sym).: see 1.
205.1.3.1.1.1.2. __type_31(X2) :- __def_87(X1), __type_19(X2).
                  Because the following simpler clause holds:
205.1.3.1.1.1.2.1. __type_31(X2) :- __type_19(X2).
                    Without any induction hypothesis:
205.1.3.1.1.1.2.1.1. __type_31(X1) :- __type_19(X1).
                      By induction on X2 satisfying __type_19, must start with r_current.
205.1.3.1.1.1.2.1.1.1. __type_31(r_current(X1,X2)) :- __type_19(r_current(X1,X2)).: see 62.5.1.1.1.
205.1.4. testable_current(X1) :- __def_21(X2), __def_22(X1), knows_current(X2).
          Because the following simpler clause holds:
205.1.4.1. testable_current(X1) :- __def_22(X1).
            By induction on X1 satisfying __def_22, must start with dec.
205.1.4.1.1. testable_current(dec(X1,X2)) :- __def_22(dec(X1,X2)).
              __def_22(dec(X1,X2)) must be by __def_22(dec(X1,X2)) :- __type_3(X1), __def_20(X2).
205.1.4.1.1.1. testable_current(dec(X1,X2)) :- __type_3(X1), __def_20(X2).
                Infer testable_current(dec(X1,X2)) using testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1. testable_current(X1) :- __type_3(X1), __def_20(X2).
                  Because the following simpler clause holds:
205.1.4.1.1.1.1.1. testable_current(X1) :- __type_3(X1).
                    Without any induction hypothesis:
205.1.4.1.1.1.1.1.1. testable_current(X1) :- __type_3(X1).
                      By induction on X1 satisfying __type_3, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
205.1.4.1.1.1.1.1.1.1. testable_current(dec(X1,X2)) :- __type_3(dec(X1,X2)).
                        __type_3(dec(X1,X2)) must be by __type_3(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.1.1. testable_current(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
                          Infer testable_current(dec(X1,X2)) using testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1. testable_current(X1) :- knows_old(X1), knows_old(X2).
                            Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1. testable_current(X1) :- knows_old(X1).
                              Without any induction hypothesis:
205.1.4.1.1.1.1.1.1.1.1.1.1.1. testable_current(X1) :- knows_old(X1).
                                By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1. testable_current(dec(X1,X2)) :- knows_old(dec(X1,X2)).
                                  knows_old(dec(X1,X2)) must be by knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1. testable_current(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
                                    Infer testable_current(dec(X1,X2)) using testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1. testable_current(X1) :- knows_old(X1), knows_old(X2).
                                      Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1. testable_current(X1) :- knows_old(X1).
                                        By induction hypothesis testable_current(X1) :- knows_old(X1)..
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2. knows_current(X2) :- knows_old(X1), knows_old(X2).
                                      Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1. knows_current(X2) :- knows_old(X2).
                                        Without any induction hypothesis:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1. knows_current(X1) :- knows_old(X1).
                                          By induction on X2 satisfying knows_old, X2 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1. knows_current(dec(X1,X2)) :- knows_old(dec(X1,X2)).: see 177.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.2. knows_current(s(X1)) :- knows_old(s(X1)).: see 177.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.3. knows_current(nil) :- knows_old(nil).: see 177.3.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.4. knows_current(i) :- knows_old(i).: see 177.4.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.5. knows_current(p(X1)) :- knows_old(p(X1)).: see 177.5.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.6. knows_current(key(X1,X2)) :- knows_old(key(X1,X2)).: see 177.6.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.7. knows_current(cons(X1,X2)) :- knows_old(cons(X1,X2)).: see 177.7.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.8. knows_current(crypt(X1,X2)) :- knows_old(crypt(X1,X2)).: see 177.8.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.9. knows_current(alice) :- knows_old(alice).: see 177.9.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.10. knows_current(enc(X1,X2)) :- knows_old(enc(X1,X2)).: see 177.10.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.11. knows_current(bob) :- knows_old(bob).: see 177.11.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.12. knows_current(server) :- knows_old(server).: see 177.12.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.2. testable_current(s(X1)) :- knows_old(s(X1)).
                                  knows_old(s(X1)) must be by knows_old(s(X)) :- knows_old(X).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.2.1. testable_current(s(X1)) :- knows_old(X1).
                                    Infer testable_current(s(X1)) using testable_current(s(X)) :- testable_current(X).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.2.1.1. testable_current(X1) :- knows_old(X1).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.3. testable_current(nil) :- knows_old(nil).
                                  knows_old(nil) must be by knows_old(nil).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.3.1. testable_current(nil).: see 166.3.1.3.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.4. testable_current(i) :- knows_old(i).
                                  knows_old(i) must be by knows_old(i).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.4.1. testable_current(i).: see 166.3.1.5.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.5. testable_current(p(X1)) :- knows_old(p(X1)).
                                  knows_old(p(X1)) must be by knows_old(p(X)) :- knows_old(X).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.5.1. testable_current(p(X1)) :- knows_old(X1).
                                    Infer testable_current(p(X1)) using testable_current(p(X)) :- testable_current(X).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.5.1.1. testable_current(X1) :- knows_old(X1).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.6. testable_current(key(X1,X2)) :- knows_old(key(X1,X2)).
                                  Examine all ways of building knows_old(key(X1,X2)) in the body.
                                  The 2 possibilities are:
                                  knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                                  knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.6.1. testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).: see 166.3.1.7.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.6.2. testable_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).: see 166.3.1.7.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.7. testable_current(cons(X1,X2)) :- knows_old(cons(X1,X2)).
                                  knows_old(cons(X1,X2)) must be by knows_old(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.7.1. testable_current(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
                                    Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X1).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.7.1.1. testable_current(X1) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8. testable_current(crypt(X1,X2)) :- knows_old(crypt(X1,X2)).
                                  Examine all ways of building knows_old(crypt(X1,X2)) in the body.
                                  The 4 possibilities are:
                                  knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                                  knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                                  knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                                  knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.1. testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 166.3.1.9.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.2. testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 166.3.1.9.6.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.3. testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 166.3.1.9.7.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.4. testable_current(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
                                    Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.4.1. knows_current(X1) :- knows_old(X1), knows_old(X2).
                                      Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.4.1.1. knows_current(X1) :- knows_old(X1).
                                        Without any induction hypothesis:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.4.1.1.1. knows_current(X1) :- knows_old(X1).: see 177.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.4.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.9. testable_current(alice) :- knows_old(alice).
                                  knows_old(alice) must be by knows_old(alice).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.9.1. testable_current(alice).: see 166.3.1.11.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10. testable_current(enc(X1,X2)) :- knows_old(enc(X1,X2)).
                                   Examine all ways of building knows_old(enc(X1,X2)) in the body.
                                   The 4 possibilities are:
                                   knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                                   knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                                   knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                                   knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1. testable_current(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                                     Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.1. testable_current(X1) :- __def_15(X1), __def_16(X2).
                                       Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.1.1. testable_current(X1) :- __def_15(X1).
                                         Without any induction hypothesis:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.1.1.1. testable_current(X1) :- __def_15(X1).
                                           By induction on X1 satisfying __def_15, must start with crypt.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.1.1.1.1. testable_current(crypt(X1,X2)) :- __def_15(crypt(X1,X2)).
                                             __def_15(crypt(X1,X2)) must be by __def_15(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.1.1.1.1.1. testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).: see 166.3.1.9.5.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.2. knows_current(X2) :- __def_15(X1), __def_16(X2).: see 177.10.1.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2. testable_current(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                                     Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.1. testable_current(X1) :- __def_19(X1), __def_20(X2).
                                       Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.1.1. testable_current(X1) :- __def_19(X1).
                                         Without any induction hypothesis:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.1.1.1. testable_current(X1) :- __def_19(X1).
                                           By induction on X1 satisfying __def_19, must start with crypt.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.1.1.1.1. testable_current(crypt(X1,X2)) :- __def_19(crypt(X1,X2)).
                                             __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.1.1.1.1.1. testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).: see 166.3.1.9.4.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.2. knows_current(X2) :- __def_19(X1), __def_20(X2).: see 177.10.2.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3. testable_current(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                                     Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.1. testable_current(X1) :- __def_10(X1), __def_11(X2).
                                       Because the following simpler clause holds:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.1.1. testable_current(X1) :- __def_10(X1).
                                         Without any induction hypothesis:
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.1.1.1. testable_current(X1) :- __def_10(X1).
                                           By induction on X1 satisfying __def_10, must start with key.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.1.1.1.1. testable_current(key(X1,X2)) :- __def_10(key(X1,X2)).
                                             __def_10(key(X1,X2)) must be by __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.1.1.1.1.1. testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).: see 166.3.1.7.3.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.2. knows_current(X2) :- __def_10(X1), __def_11(X2).: see 177.10.3.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.4. testable_current(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
                                     Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.4.1. testable_current(X1) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.4.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.11. testable_current(bob) :- knows_old(bob).
                                   knows_old(bob) must be by knows_old(bob).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.11.1. testable_current(bob).: see 166.3.1.13.1.
205.1.4.1.1.1.1.1.1.1.1.1.1.1.12. testable_current(server) :- knows_old(server).
                                   knows_old(server) must be by knows_old(server).
205.1.4.1.1.1.1.1.1.1.1.1.1.1.12.1. testable_current(server).: see 166.3.1.14.1.
205.1.4.1.1.1.1.1.1.1.1.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.
205.1.4.1.1.1.1.1.1.2. testable_current(s(X1)) :- __type_3(s(X1)).
                        __type_3(s(X1)) must be by __type_3(s(X)) :- knows_old(X).
205.1.4.1.1.1.1.1.1.2.1. testable_current(s(X1)) :- knows_old(X1).
                          Infer testable_current(s(X1)) using testable_current(s(X)) :- testable_current(X).
205.1.4.1.1.1.1.1.1.2.1.1. testable_current(X1) :- knows_old(X1).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.3. testable_current(nil) :- __type_3(nil).
                        __type_3(nil) must be by __type_3(nil).
205.1.4.1.1.1.1.1.1.3.1. testable_current(nil).: see 166.3.1.3.1.
205.1.4.1.1.1.1.1.1.4. testable_current(i) :- __type_3(i).
                        __type_3(i) must be by __type_3(i).
205.1.4.1.1.1.1.1.1.4.1. testable_current(i).: see 166.3.1.5.1.
205.1.4.1.1.1.1.1.1.5. testable_current(p(X1)) :- __type_3(p(X1)).
                        __type_3(p(X1)) must be by __type_3(p(X)) :- knows_old(X).
205.1.4.1.1.1.1.1.1.5.1. testable_current(p(X1)) :- knows_old(X1).
                          Infer testable_current(p(X1)) using testable_current(p(X)) :- testable_current(X).
205.1.4.1.1.1.1.1.1.5.1.1. testable_current(X1) :- knows_old(X1).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.6. testable_current(key(X1,X2)) :- __type_3(key(X1,X2)).
                        Examine all ways of building __type_3(key(X1,X2)) in the body.
                        The 2 possibilities are:
                        __type_3(key(X1,X2)) :- __def_51(X1), agent(X2).
                        __type_3(key(X1,X2)) :- __def_62(X1), __def_63(X2).
205.1.4.1.1.1.1.1.1.6.1. testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).: see 166.3.1.7.1.
205.1.4.1.1.1.1.1.1.6.2. testable_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).: see 166.3.1.7.2.
205.1.4.1.1.1.1.1.1.7. testable_current(cons(X1,X2)) :- __type_3(cons(X1,X2)).
                        __type_3(cons(X1,X2)) must be by __type_3(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.7.1. testable_current(cons(X1,X2)) :- knows_old(X1), knows_old(X2).
                          Infer testable_current(cons(X1,X2)) using testable_current(cons(X1,X2)) :- testable_current(X1).
205.1.4.1.1.1.1.1.1.7.1.1. testable_current(X1) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.8. testable_current(crypt(X1,X2)) :- __type_3(crypt(X1,X2)).
                        Examine all ways of building __type_3(crypt(X1,X2)) in the body.
                        The 4 possibilities are:
                        __type_3(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                        __type_3(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                        __type_3(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                        __type_3(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.8.1. testable_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 166.3.1.9.2.
205.1.4.1.1.1.1.1.1.8.2. testable_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 166.3.1.9.6.
205.1.4.1.1.1.1.1.1.8.3. testable_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 166.3.1.9.7.
205.1.4.1.1.1.1.1.1.8.4. testable_current(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.8.4.
205.1.4.1.1.1.1.1.1.9. testable_current(alice) :- __type_3(alice).
                        __type_3(alice) must be by __type_3(alice).
205.1.4.1.1.1.1.1.1.9.1. testable_current(alice).: see 166.3.1.11.1.
205.1.4.1.1.1.1.1.1.10. testable_current(enc(X1,X2)) :- __type_3(enc(X1,X2)).
                         Examine all ways of building __type_3(enc(X1,X2)) in the body.
                         The 4 possibilities are:
                         __type_3(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                         __type_3(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                         __type_3(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                         __type_3(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
205.1.4.1.1.1.1.1.1.10.1. testable_current(enc(X1,X2)) :- __def_15(X1), __def_16(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.1.
205.1.4.1.1.1.1.1.1.10.2. testable_current(enc(X1,X2)) :- __def_19(X1), __def_20(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.2.
205.1.4.1.1.1.1.1.1.10.3. testable_current(enc(X1,X2)) :- __def_10(X1), __def_11(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.10.3.
205.1.4.1.1.1.1.1.1.10.4. testable_current(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
                           Infer testable_current(enc(X1,X2)) using testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
205.1.4.1.1.1.1.1.1.10.4.1. testable_current(X1) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.
205.1.4.1.1.1.1.1.1.10.4.2. knows_current(X2) :- knows_old(X1), knows_old(X2).: see 205.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.2.
205.1.4.1.1.1.1.1.1.11. testable_current(bob) :- __type_3(bob).
                         __type_3(bob) must be by __type_3(bob).
205.1.4.1.1.1.1.1.1.11.1. testable_current(bob).: see 166.3.1.13.1.
205.1.4.1.1.1.1.1.1.12. testable_current(server) :- __type_3(server).
                         __type_3(server) must be by __type_3(server).
205.1.4.1.1.1.1.1.1.12.1. testable_current(server).: see 166.3.1.14.1.
205.1.4.1.1.1.2. knows_current(X2) :- __type_3(X1), __def_20(X2).
                  Because the following simpler clause holds:
205.1.4.1.1.1.2.1. knows_current(X2) :- __def_20(X2).: see 177.10.2.2.1.
205.1.5. testable_current(X1) :- __type_27(X2), __def_114(X1), knows_current(X2).
          Equivalent to:
205.1.5.1. testable_current(X1) :- __def_114(X1), __type_27(X2), knows_current(X2).
            Because the following simpler clause holds:
205.1.5.1.1. testable_current(X1) :- __def_114(X1).
              By induction on X1 satisfying __def_114, must start with key.
205.1.5.1.1.1. testable_current(key(X1,X2)) :- __def_114(key(X1,X2)).
                __def_114(key(X1,X2)) must be by __def_114(key(X1,X2)) :- __def_115(X1), __def_67(X2).
205.1.5.1.1.1.1. testable_current(key(X1,X2)) :- __def_115(X1), __def_67(X2).
                  Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_118(X1), __type_29(X2).
205.1.5.1.1.1.1.1. __def_118(X1) :- __def_115(X1), __def_67(X2).
                    Because the following simpler clause holds:
205.1.5.1.1.1.1.1.1. __def_118(X1) :- __def_115(X1).
                      Without any induction hypothesis:
205.1.5.1.1.1.1.1.1.1. __def_118(X1) :- __def_115(X1).
                        By induction on X1 satisfying __def_115, must start with prv.
205.1.5.1.1.1.1.1.1.1.1. __def_118(prv) :- __def_115(prv).
                          __def_115(prv) must be by __def_115(prv).
205.1.5.1.1.1.1.1.1.1.1.1. __def_118(prv).: see 83.
205.1.5.1.1.1.1.2. __type_29(X2) :- __def_115(X1), __def_67(X2).
                    Because the following simpler clause holds:
205.1.5.1.1.1.1.2.1. __type_29(X2) :- __def_67(X2).
                      Without any induction hypothesis:
205.1.5.1.1.1.1.2.1.1. __type_29(X1) :- __def_67(X1).
                        By induction on X2 satisfying __def_67, X2 must start with i, session_old, alice, bob or server.
205.1.5.1.1.1.1.2.1.1.1. __type_29(i) :- __def_67(i).
                          __def_67(i) must be by __def_67(i).
205.1.5.1.1.1.1.2.1.1.1.1. __type_29(i).: see 3.3.1.1.1.
205.1.5.1.1.1.1.2.1.1.2. __type_29(session_old(X1,X2)) :- __def_67(session_old(X1,X2)).
                          __def_67(session_old(X1,X2)) must be by __def_67(session_old(X1,X2)) :- agent(X1), agent(X2).
205.1.5.1.1.1.1.2.1.1.2.1. __type_29(session_old(X1,X2)) :- agent(X1), agent(X2).: see 3.1.1.1.1.
205.1.5.1.1.1.1.2.1.1.3. __type_29(alice) :- __def_67(alice).
                          __def_67(alice) must be by __def_67(alice).
205.1.5.1.1.1.1.2.1.1.3.1. __type_29(alice).: see 3.3.1.2.1.
205.1.5.1.1.1.1.2.1.1.4. __type_29(bob) :- __def_67(bob).
                          __def_67(bob) must be by __def_67(bob).
205.1.5.1.1.1.1.2.1.1.4.1. __type_29(bob).: see 3.3.1.3.1.
205.1.5.1.1.1.1.2.1.1.5. __type_29(server) :- __def_67(server).
                          __def_67(server) must be by __def_67(server).
205.1.5.1.1.1.1.2.1.1.5.1. __type_29(server).: see 3.3.1.4.1.
205.1.6. testable_current(X1) :- __def_17(X2), __type_2(X1), knows_current(X2).
          Because the following simpler clause holds:
205.1.6.1. testable_current(X1) :- __type_2(X1).
            By induction on X1 satisfying __type_2, X1 must start with key or crypt.
205.1.6.1.1. testable_current(key(X1,X2)) :- __type_2(key(X1,X2)).
              __type_2(key(X1,X2)) must be by __type_2(key(X1,X2)) :- __def_12(X1), __def_13(X2).
205.1.6.1.1.1. testable_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).: see 166.3.1.7.3.
205.1.6.1.2. testable_current(crypt(X1,X2)) :- __type_2(crypt(X1,X2)).
              Examine all ways of building __type_2(crypt(X1,X2)) in the body.
              The 2 possibilities are:
              __type_2(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
              __type_2(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
205.1.6.1.2.1. testable_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).: see 166.3.1.9.4.
205.1.6.1.2.2. testable_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).: see 166.3.1.9.5.
205.1.7. testable_current(X1) :- __type_26(X2), __def_112(X1), knows_current(X2).
          Equivalent to:
205.1.7.1. testable_current(X1) :- __def_112(X1), __type_26(X2), knows_current(X2).
            Because the following simpler clause holds:
205.1.7.1.1. testable_current(X1) :- __def_112(X1).
              By induction on X1 satisfying __def_112, must start with key.
205.1.7.1.1.1. testable_current(key(X1,X2)) :- __def_112(key(X1,X2)).
                __def_112(key(X1,X2)) must be by __def_112(key(X1,X2)) :- __def_113(X1), __def_65(X2).
205.1.7.1.1.1.1. testable_current(key(X1,X2)) :- __def_113(X1), __def_65(X2).
                  Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
205.1.7.1.1.1.1.1. __def_51(X1) :- __def_113(X1), __def_65(X2).
                    Because the following simpler clause holds:
205.1.7.1.1.1.1.1.1. __def_51(X1) :- __def_113(X1).
                      Without any induction hypothesis:
205.1.7.1.1.1.1.1.1.1. __def_51(X1) :- __def_113(X1).
                        By induction on X1 satisfying __def_113, must start with pub.
205.1.7.1.1.1.1.1.1.1.1. __def_51(pub) :- __def_113(pub).
                          __def_113(pub) must be by __def_113(pub).
205.1.7.1.1.1.1.1.1.1.1.1. __def_51(pub).: see 143.
205.1.7.1.1.1.1.2. agent(X2) :- __def_113(X1), __def_65(X2).
                    Because the following simpler clause holds:
205.1.7.1.1.1.1.2.1. agent(X2) :- __def_65(X2).
                      Without any induction hypothesis:
205.1.7.1.1.1.1.2.1.1. agent(X1) :- __def_65(X1).
                        By induction on X2 satisfying __def_65, must start with i.
205.1.7.1.1.1.1.2.1.1.1. agent(i) :- __def_65(i).
                          __def_65(i) must be by __def_65(i).
205.1.7.1.1.1.1.2.1.1.1.1. agent(i).: see 18.1.1.1.1.1.1.
205.1.8. testable_current(X1) :- __def_24(X2), __def_25(X1), knows_current(X2).
          Because the following simpler clause holds:
205.1.8.1. testable_current(X1) :- __def_25(X1).
            By induction on X1 satisfying __def_25, must start with key.
205.1.8.1.1. testable_current(key(X1,X2)) :- __def_25(key(X1,X2)).
              __def_25(key(X1,X2)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
205.1.8.1.1.1. testable_current(key(X1,X2)) :- __def_26(X1), __type_4(X2).
                Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
205.1.8.1.1.1.1. __def_121(X1) :- __def_26(X1), __type_4(X2).
                  Because the following simpler clause holds:
205.1.8.1.1.1.1.1. __def_121(X1) :- __def_26(X1).
                    Without any induction hypothesis:
205.1.8.1.1.1.1.1.1. __def_121(X1) :- __def_26(X1).
                      By induction on X1 satisfying __def_26, must start with sym.
205.1.8.1.1.1.1.1.1.1. __def_121(sym) :- __def_26(sym).
                        __def_26(sym) must be by __def_26(sym).
205.1.8.1.1.1.1.1.1.1.1. __def_121(sym).: see 1.
205.1.8.1.1.1.2. __type_31(X2) :- __def_26(X1), __type_4(X2).
                  Because the following simpler clause holds:
205.1.8.1.1.1.2.1. __type_31(X2) :- __type_4(X2).
                    Without any induction hypothesis:
205.1.8.1.1.1.2.1.1. __type_31(X1) :- __type_4(X1).
                      By induction on X2 satisfying __type_4, must start with r_old.
205.1.8.1.1.1.2.1.1.1. __type_31(r_old(X1,X2)) :- __type_4(r_old(X1,X2)).: see 62.3.1.1.1.
205.1.9. testable_current(X1) :- __type_7(X2), __def_44(X1), knows_current(X2).
          Equivalent to:
205.1.9.1. testable_current(X1) :- __def_44(X1), __type_7(X2), knows_current(X2).
            Because the following simpler clause holds:
205.1.9.1.1. testable_current(X1) :- __def_44(X1).
              By induction on X1 satisfying __def_44, must start with key.
205.1.9.1.1.1. testable_current(key(X1,X2)) :- __def_44(key(X1,X2)).
                __def_44(key(X1,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
205.1.9.1.1.1.1. testable_current(key(X1,X2)) :- __def_45(X1), __type_8(X2).
                  Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
205.1.9.1.1.1.1.1. __def_121(X1) :- __def_45(X1), __type_8(X2).
                    Because the following simpler clause holds:
205.1.9.1.1.1.1.1.1. __def_121(X1) :- __def_45(X1).
                      Without any induction hypothesis:
205.1.9.1.1.1.1.1.1.1. __def_121(X1) :- __def_45(X1).
                        By induction on X1 satisfying __def_45, must start with sym.
205.1.9.1.1.1.1.1.1.1.1. __def_121(sym) :- __def_45(sym).
                          __def_45(sym) must be by __def_45(sym).
205.1.9.1.1.1.1.1.1.1.1.1. __def_121(sym).: see 1.
205.1.9.1.1.1.1.2. __type_31(X2) :- __def_45(X1), __type_8(X2).
                    Because the following simpler clause holds:
205.1.9.1.1.1.1.2.1. __type_31(X2) :- __type_8(X2).
                      Without any induction hypothesis:
205.1.9.1.1.1.1.2.1.1. __type_31(X1) :- __type_8(X1).
                        By induction on X2 satisfying __type_8, must start with r_old.
205.1.9.1.1.1.1.2.1.1.1. __type_31(r_old(X1,X2)) :- __type_8(r_old(X1,X2)).: see 62.6.1.1.1.
205.1.10. testable_current(X1) :- __def_97(X2), __def_98(X1), knows_current(X2).
           Because the following simpler clause holds:
205.1.10.1. testable_current(X1) :- __def_98(X1).
             By induction on X1 satisfying __def_98, must start with key.
205.1.10.1.1. testable_current(key(X1,X2)) :- __def_98(key(X1,X2)).
               __def_98(key(X1,X2)) must be by __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
205.1.10.1.1.1. testable_current(key(X1,X2)) :- __def_102(X1), __def_103(X2).
                 Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_121(X1), __type_31(X2).
205.1.10.1.1.1.1. __def_121(X1) :- __def_102(X1), __def_103(X2).
                   Because the following simpler clause holds:
205.1.10.1.1.1.1.1. __def_121(X1) :- __def_102(X1).
                     Without any induction hypothesis:
205.1.10.1.1.1.1.1.1. __def_121(X1) :- __def_102(X1).
                       By induction on X1 satisfying __def_102, must start with sym.
205.1.10.1.1.1.1.1.1.1. __def_121(sym) :- __def_102(sym).
                         __def_102(sym) must be by __def_102(sym).
205.1.10.1.1.1.1.1.1.1.1. __def_121(sym).: see 1.
205.1.10.1.1.1.2. __type_31(X2) :- __def_102(X1), __def_103(X2).
                   Because the following simpler clause holds:
205.1.10.1.1.1.2.1. __type_31(X2) :- __def_103(X2).
                     Without any induction hypothesis:
205.1.10.1.1.1.2.1.1. __type_31(X1) :- __def_103(X1).
                       By induction on X2 satisfying __def_103, must start with r_current.
205.1.10.1.1.1.2.1.1.1. __type_31(r_current(X1,X2)) :- __def_103(r_current(X1,X2)).: see 62.2.1.1.
205.1.11. testable_current(X1) :- knows_current(X2), knows_current(X1), knows_current(X2).
           Equivalent to:
205.1.11.1. testable_current(X1) :- knows_current(X2), knows_current(X1).: see 195.1.11.1.
. lemma 206:206. testable_old(X1) :- testable_old(enc(X2,X1)), knows_old(X2).
      Equivalent to:
206.1. testable_old(X1) :- knows_old(X2), testable_old(enc(X2,X1)).
        Examine all ways of building testable_old(enc(X2,X1)) in the body.
        The 4 possibilities are:
        testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
        testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
206.1.1. testable_old(X1) :- __def_15(X2), __def_16(X1), knows_old(X2).
          Special case of:
206.1.1.1. #false() :- knows_old(X1), __def_15(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
206.1.1.1.1. #false() :- knows_old(dec(X1,X2)), __def_15(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
206.1.1.1.2. #false() :- knows_old(s(X1)), __def_15(s(X1)).
              knows_old(s(X1)) is impossible.
206.1.1.1.3. #false() :- knows_old(nil), __def_15(nil).
              knows_old(nil) is impossible.
206.1.1.1.4. #false() :- knows_old(i), __def_15(i).
              knows_old(i) is impossible.
206.1.1.1.5. #false() :- knows_old(p(X1)), __def_15(p(X1)).
              knows_old(p(X1)) is impossible.
206.1.1.1.6. #false() :- knows_old(key(X1,X2)), __def_15(key(X1,X2)).
              knows_old(key(X1,X2)) is impossible.
206.1.1.1.7. #false() :- knows_old(cons(X1,X2)), __def_15(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
206.1.1.1.8. #false() :- knows_old(crypt(X1,X2)), __def_15(crypt(X1,X2)).
              Examine all ways of building knows_old(crypt(X1,X2)) in the body.
              The 4 possibilities are:
              knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
206.1.1.1.8.1. #false() :- __def_15(crypt(X1,X2)), __def_28(X1), __def_29(X2).: see 174.1.1.1.8.2.
206.1.1.1.8.2. #false() :- __def_15(crypt(X1,X2)), __def_24(X1), __def_25(X2).: see 174.1.1.1.8.3.
206.1.1.1.8.3. #false() :- __def_15(crypt(X1,X2)), __type_7(X1), __def_44(X2).: see 174.1.1.1.8.4.
206.1.1.1.8.4. #false() :- __def_15(crypt(X1,X2)), knows_old(X1), knows_old(X2).: see 174.1.1.1.8.5.
206.1.1.1.9. #false() :- knows_old(alice), __def_15(alice).
              knows_old(alice) is impossible.
206.1.1.1.10. #false() :- knows_old(enc(X1,X2)), __def_15(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
206.1.1.1.11. #false() :- knows_old(bob), __def_15(bob).
               knows_old(bob) is impossible.
206.1.1.1.12. #false() :- knows_old(server), __def_15(server).
               knows_old(server) is impossible.
206.1.2. testable_old(X1) :- __def_19(X2), __def_20(X1), knows_old(X2).
          Special case of:
206.1.2.1. #false() :- knows_old(X1), __def_19(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
206.1.2.1.1. #false() :- knows_old(dec(X1,X2)), __def_19(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
206.1.2.1.2. #false() :- knows_old(s(X1)), __def_19(s(X1)).
              knows_old(s(X1)) is impossible.
206.1.2.1.3. #false() :- knows_old(nil), __def_19(nil).
              knows_old(nil) is impossible.
206.1.2.1.4. #false() :- knows_old(i), __def_19(i).
              knows_old(i) is impossible.
206.1.2.1.5. #false() :- knows_old(p(X1)), __def_19(p(X1)).
              knows_old(p(X1)) is impossible.
206.1.2.1.6. #false() :- knows_old(key(X1,X2)), __def_19(key(X1,X2)).
              knows_old(key(X1,X2)) is impossible.
206.1.2.1.7. #false() :- knows_old(cons(X1,X2)), __def_19(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
206.1.2.1.8. #false() :- knows_old(crypt(X1,X2)), __def_19(crypt(X1,X2)).
              Examine all ways of building knows_old(crypt(X1,X2)) in the body.
              The 4 possibilities are:
              knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
              knows_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
              knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
              knows_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
206.1.2.1.8.1. #false() :- __def_19(crypt(X1,X2)), __def_28(X1), __def_29(X2).
                __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
206.1.2.1.8.1.1. #false() :- __def_28(X1), __def_29(X2), __def_22(X2), __def_21(X1).: see 174.1.2.1.1.1.2.
206.1.2.1.8.2. #false() :- __def_19(crypt(X1,X2)), __def_24(X1), __def_25(X2).
                __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
206.1.2.1.8.2.1. #false() :- __def_24(X1), __def_25(X2), __def_22(X2), __def_21(X1).: see 174.1.2.1.1.1.3.
206.1.2.1.8.3. #false() :- __def_19(crypt(X1,X2)), __type_7(X1), __def_44(X2).
                __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
206.1.2.1.8.3.1. #false() :- __def_44(X2), __def_22(X2), __type_7(X1), __def_21(X1).: see 174.1.2.1.1.1.4.
206.1.2.1.8.4. #false() :- __def_19(crypt(X1,X2)), knows_old(X1), knows_old(X2).
                __def_19(crypt(X1,X2)) must be by __def_19(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
206.1.2.1.8.4.1. #false() :- knows_old(X1), __def_22(X2), __def_21(X1), knows_old(X2).: see 174.1.2.1.1.1.5.
206.1.2.1.9. #false() :- knows_old(alice), __def_19(alice).
              knows_old(alice) is impossible.
206.1.2.1.10. #false() :- knows_old(enc(X1,X2)), __def_19(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
206.1.2.1.11. #false() :- knows_old(bob), __def_19(bob).
               knows_old(bob) is impossible.
206.1.2.1.12. #false() :- knows_old(server), __def_19(server).
               knows_old(server) is impossible.
206.1.3. testable_old(X1) :- __def_10(X2), __def_11(X1), knows_old(X2).
          Special case of:
206.1.3.1. #false() :- knows_old(X1), __def_10(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
206.1.3.1.1. #false() :- knows_old(dec(X1,X2)), __def_10(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
206.1.3.1.2. #false() :- knows_old(s(X1)), __def_10(s(X1)).
              knows_old(s(X1)) is impossible.
206.1.3.1.3. #false() :- knows_old(nil), __def_10(nil).
              knows_old(nil) is impossible.
206.1.3.1.4. #false() :- knows_old(i), __def_10(i).
              knows_old(i) is impossible.
206.1.3.1.5. #false() :- knows_old(p(X1)), __def_10(p(X1)).
              knows_old(p(X1)) is impossible.
206.1.3.1.6. #false() :- knows_old(key(X1,X2)), __def_10(key(X1,X2)).
              Examine all ways of building knows_old(key(X1,X2)) in the body.
              The 2 possibilities are:
              knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
              knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
206.1.3.1.6.1. #false() :- __def_10(key(X1,X2)), __def_51(X1), agent(X2).
                __def_10(key(X1,X2)) must be by __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
206.1.3.1.6.1.1. #false() :- agent(X2), __def_13(X2), __def_51(X1), __def_12(X1).: see 174.1.3.1.1.1.1.
206.1.3.1.6.2. #false() :- __def_10(key(X1,X2)), __def_62(X1), __def_63(X2).
                __def_10(key(X1,X2)) must be by __def_10(key(X1,X2)) :- __def_12(X1), __def_13(X2).
206.1.3.1.6.2.1. #false() :- __def_63(X2), __def_62(X1), __def_13(X2), __def_12(X1).
                  This is implied by:
206.1.3.1.6.2.1.1. #false() :- __def_12(X1), __def_62(X1).
                    Without any induction hypothesis:
206.1.3.1.6.2.1.1.1. #false() :- __def_12(X1), __def_62(X1).
                      By induction on X1 satisfying __def_12, must start with pub.
206.1.3.1.6.2.1.1.1.1. #false() :- __def_12(pub), __def_62(pub).
                        __def_12(pub) is impossible.
206.1.3.1.7. #false() :- knows_old(cons(X1,X2)), __def_10(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
206.1.3.1.8. #false() :- knows_old(crypt(X1,X2)), __def_10(crypt(X1,X2)).
              knows_old(crypt(X1,X2)) is impossible.
206.1.3.1.9. #false() :- knows_old(alice), __def_10(alice).
              knows_old(alice) is impossible.
206.1.3.1.10. #false() :- knows_old(enc(X1,X2)), __def_10(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
206.1.3.1.11. #false() :- knows_old(bob), __def_10(bob).
               knows_old(bob) is impossible.
206.1.3.1.12. #false() :- knows_old(server), __def_10(server).
               knows_old(server) is impossible.
206.1.4. testable_old(X1) :- testable_old(X2), knows_old(X1), knows_old(X2).
          Equivalent to:
206.1.4.1. testable_old(X1) :- knows_old(X2), knows_old(X1), testable_old(X2).: see 189.1.
. lemma 207:207. knows_current(X1) :- knows_current(enc(X1,X2)), knows_current(X2).
      Equivalent to:
207.1. knows_current(X1) :- knows_current(X2), knows_current(enc(X1,X2)).
        Examine all ways of building knows_current(enc(X1,X2)) in the body.
        The 4 possibilities are:
        knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
        knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
        knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
        knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
207.1.1. knows_current(X1) :- __def_72(X1), __def_73(X2), knows_current(X2).
          Special case of:
207.1.1.1. #false() :- __def_73(X1), knows_current(X1).
            By induction on X1 satisfying __def_73, must start with passwd_current.
207.1.1.1.1. #false() :- __def_73(passwd_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              __def_73(passwd_current(X1,X2)) is impossible.
207.1.2. knows_current(X1) :- __def_80(X1), __def_81(X2), knows_current(X2).
          Special case of:
207.1.2.1. #false() :- __def_81(X1), knows_current(X1).
            By induction on X1 satisfying __def_81, must start with passwd_current.
207.1.2.1.1. #false() :- __def_81(passwd_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              __def_81(passwd_current(X1,X2)) is impossible.
207.1.3. knows_current(X1) :- knows_current(X1), knows_current(X2), knows_current(X2).: see 170.1.1.
207.1.4. knows_current(X1) :- __def_76(X1), __def_77(X2), knows_current(X2).
          Special case of:
207.1.4.1. #false() :- __def_77(X1), knows_current(X1).
            By induction on X1 satisfying __def_77, must start with passwd_current.
207.1.4.1.1. #false() :- __def_77(passwd_current(X1,X2)), knows_current(passwd_current(X1,X2)).
              __def_77(passwd_current(X1,X2)) is impossible.
. lemma 208:208. knows_old(crypt(X1,X2)) :- __def_44(X2), __type_7(X1).
      Infer knows_old(crypt(X1,X2)) using knows_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
208.1. __type_7(X1) :- __def_44(X2), __type_7(X1).
        Because the following simpler clause holds:
208.1.1. __type_7(X1) :- __type_7(X1).: see 7.8.4.1.1.
208.2. __def_44(X2) :- __def_44(X2), __type_7(X1).
        Because the following simpler clause holds:
208.2.1. __def_44(X2) :- __def_44(X2).: see 7.8.4.2.1.
. lemma 209:209. knows_current(X1) :- testable_current(enc(X2,X1)), testable_current(X2).
      Equivalent to:
209.1. knows_current(X1) :- testable_current(X2), testable_current(enc(X2,X1)).
        Examine all ways of building testable_current(enc(X2,X1)) in the body.
        The 4 possibilities are:
        testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
        testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
        testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
        testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
209.1.1. knows_current(X1) :- __def_72(X2), __def_73(X1), testable_current(X2).
          Special case of:
209.1.1.1. #false() :- __def_72(X1), testable_current(X1).: see 166.1.1.
209.1.2. knows_current(X1) :- __def_80(X2), __def_81(X1), testable_current(X2).
          Special case of:
209.1.2.1. #false() :- __def_80(X1), testable_current(X1).: see 166.2.1.
209.1.3. knows_current(X1) :- testable_current(X2), knows_current(X1), testable_current(X2).: see 171.1.1.
209.1.4. knows_current(X1) :- __def_76(X2), __def_77(X1), testable_current(X2).
          Special case of:
209.1.4.1. #false() :- __def_76(X1), testable_current(X1).: see 166.4.1.
. lemma 210:210. testable_old(X1) :- testable_old(crypt(X2,X1)), knows_old(X2).
      Equivalent to:
210.1. testable_old(X1) :- knows_old(X2), testable_old(crypt(X2,X1)).
        Examine all ways of building testable_old(crypt(X2,X1)) in the body.
        The 6 possibilities are:
        testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
        testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
        testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
210.1.1. testable_old(X1) :- __type_12(X2), __def_54(X1), knows_old(X2).
          Equivalent to:
210.1.1.1. testable_old(X1) :- __def_54(X1), __type_12(X2), knows_old(X2).
            Because the following simpler clause holds:
210.1.1.1.1. testable_old(X1) :- __def_54(X1).
              By induction on X1 satisfying __def_54, must start with key.
210.1.1.1.1.1. testable_old(key(X1,X2)) :- __def_54(key(X1,X2)).
                __def_54(key(X1,X2)) must be by __def_54(key(X1,X2)) :- __def_55(X1), __def_4(X2).
210.1.1.1.1.1.1. testable_old(key(X1,X2)) :- __def_55(X1), __def_4(X2).
                  Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
210.1.1.1.1.1.1.1. __def_58(X1) :- __def_55(X1), __def_4(X2).
                    Because the following simpler clause holds:
210.1.1.1.1.1.1.1.1. __def_58(X1) :- __def_55(X1).
                      Without any induction hypothesis:
210.1.1.1.1.1.1.1.1.1. __def_58(X1) :- __def_55(X1).
                        By induction on X1 satisfying __def_55, must start with prv.
210.1.1.1.1.1.1.1.1.1.1. __def_58(prv) :- __def_55(prv).
                          __def_55(prv) must be by __def_55(prv).
210.1.1.1.1.1.1.1.1.1.1.1. __def_58(prv).: see 30.
210.1.1.1.1.1.1.2. __type_14(X2) :- __def_55(X1), __def_4(X2).
                    Because the following simpler clause holds:
210.1.1.1.1.1.1.2.1. __type_14(X2) :- __def_4(X2).
                      Without any induction hypothesis:
210.1.1.1.1.1.1.2.1.1. __type_14(X1) :- __def_4(X1).
                        By induction on X2 satisfying __def_4, X2 must start with i, alice, bob or server.
210.1.1.1.1.1.1.2.1.1.1. __type_14(i) :- __def_4(i).
                          __def_4(i) must be by __def_4(i).
210.1.1.1.1.1.1.2.1.1.1.1. __type_14(i).: see 86.1.1.1.1.
210.1.1.1.1.1.1.2.1.1.2. __type_14(alice) :- __def_4(alice).
                          __def_4(alice) must be by __def_4(alice).
210.1.1.1.1.1.1.2.1.1.2.1. __type_14(alice).: see 86.1.1.2.1.
210.1.1.1.1.1.1.2.1.1.3. __type_14(bob) :- __def_4(bob).
                          __def_4(bob) must be by __def_4(bob).
210.1.1.1.1.1.1.2.1.1.3.1. __type_14(bob).: see 86.1.1.3.1.
210.1.1.1.1.1.1.2.1.1.4. __type_14(server) :- __def_4(server).
                          __def_4(server) must be by __def_4(server).
210.1.1.1.1.1.1.2.1.1.4.1. __type_14(server).: see 86.1.1.4.1.
210.1.2. testable_old(X1) :- __def_28(X2), __def_29(X1), knows_old(X2).
          Because the following simpler clause holds:
210.1.2.1. testable_old(X1) :- __def_29(X1).
            By induction on X1 satisfying __def_29, must start with key.
210.1.2.1.1. testable_old(key(X1,X2)) :- __def_29(key(X1,X2)).
              __def_29(key(X1,X2)) must be by __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
210.1.2.1.1.1. testable_old(key(X1,X2)) :- __def_33(X1), __def_34(X2).
                Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
210.1.2.1.1.1.1. __def_61(X1) :- __def_33(X1), __def_34(X2).
                  Because the following simpler clause holds:
210.1.2.1.1.1.1.1. __def_61(X1) :- __def_33(X1).
                    Without any induction hypothesis:
210.1.2.1.1.1.1.1.1. __def_61(X1) :- __def_33(X1).
                      By induction on X1 satisfying __def_33, must start with sym.
210.1.2.1.1.1.1.1.1.1. __def_61(sym) :- __def_33(sym).
                        __def_33(sym) must be by __def_33(sym).
210.1.2.1.1.1.1.1.1.1.1. __def_61(sym).: see 38.
210.1.2.1.1.1.2. __type_16(X2) :- __def_33(X1), __def_34(X2).
                  Because the following simpler clause holds:
210.1.2.1.1.1.2.1. __type_16(X2) :- __def_34(X2).
                    Without any induction hypothesis:
210.1.2.1.1.1.2.1.1. __type_16(X1) :- __def_34(X1).
                      By induction on X2 satisfying __def_34, must start with r_old.
210.1.2.1.1.1.2.1.1.1. __type_16(r_old(X1,X2)) :- __def_34(r_old(X1,X2)).
                        __def_34(r_old(X1,X2)) must be by __def_34(r_old(X1,X2)) :- knows_old(X1).
210.1.2.1.1.1.2.1.1.1.1. __type_16(r_old(X1,X2)) :- knows_old(X1).: see 107.1.1.1.1.1.
210.1.3. testable_old(X1) :- __def_24(X2), __def_25(X1), knows_old(X2).
          Because the following simpler clause holds:
210.1.3.1. testable_old(X1) :- __def_25(X1).
            By induction on X1 satisfying __def_25, must start with key.
210.1.3.1.1. testable_old(key(X1,X2)) :- __def_25(key(X1,X2)).
              __def_25(key(X1,X2)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
210.1.3.1.1.1. testable_old(key(X1,X2)) :- __def_26(X1), __type_4(X2).
                Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
210.1.3.1.1.1.1. __def_61(X1) :- __def_26(X1), __type_4(X2).
                  Because the following simpler clause holds:
210.1.3.1.1.1.1.1. __def_61(X1) :- __def_26(X1).
                    Without any induction hypothesis:
210.1.3.1.1.1.1.1.1. __def_61(X1) :- __def_26(X1).
                      By induction on X1 satisfying __def_26, must start with sym.
210.1.3.1.1.1.1.1.1.1. __def_61(sym) :- __def_26(sym).
                        __def_26(sym) must be by __def_26(sym).
210.1.3.1.1.1.1.1.1.1.1. __def_61(sym).: see 38.
210.1.3.1.1.1.2. __type_16(X2) :- __def_26(X1), __type_4(X2).
                  Because the following simpler clause holds:
210.1.3.1.1.1.2.1. __type_16(X2) :- __type_4(X2).
                    Without any induction hypothesis:
210.1.3.1.1.1.2.1.1. __type_16(X1) :- __type_4(X1).
                      By induction on X2 satisfying __type_4, must start with r_old.
210.1.3.1.1.1.2.1.1.1. __type_16(r_old(X1,X2)) :- __type_4(r_old(X1,X2)).: see 107.2.1.1.1.
210.1.4. testable_old(X1) :- __type_7(X2), __def_44(X1), knows_old(X2).
          Equivalent to:
210.1.4.1. testable_old(X1) :- __def_44(X1), __type_7(X2), knows_old(X2).
            Because the following simpler clause holds:
210.1.4.1.1. testable_old(X1) :- __def_44(X1).
              By induction on X1 satisfying __def_44, must start with key.
210.1.4.1.1.1. testable_old(key(X1,X2)) :- __def_44(key(X1,X2)).
                __def_44(key(X1,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
210.1.4.1.1.1.1. testable_old(key(X1,X2)) :- __def_45(X1), __type_8(X2).
                  Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
210.1.4.1.1.1.1.1. __def_61(X1) :- __def_45(X1), __type_8(X2).
                    Because the following simpler clause holds:
210.1.4.1.1.1.1.1.1. __def_61(X1) :- __def_45(X1).
                      Without any induction hypothesis:
210.1.4.1.1.1.1.1.1.1. __def_61(X1) :- __def_45(X1).
                        By induction on X1 satisfying __def_45, must start with sym.
210.1.4.1.1.1.1.1.1.1.1. __def_61(sym) :- __def_45(sym).
                          __def_45(sym) must be by __def_45(sym).
210.1.4.1.1.1.1.1.1.1.1.1. __def_61(sym).: see 38.
210.1.4.1.1.1.1.2. __type_16(X2) :- __def_45(X1), __type_8(X2).
                    Because the following simpler clause holds:
210.1.4.1.1.1.1.2.1. __type_16(X2) :- __type_8(X2).
                      Without any induction hypothesis:
210.1.4.1.1.1.1.2.1.1. __type_16(X1) :- __type_8(X1).
                        By induction on X2 satisfying __type_8, must start with r_old.
210.1.4.1.1.1.1.2.1.1.1. __type_16(r_old(X1,X2)) :- __type_8(r_old(X1,X2)).: see 107.3.1.1.1.
210.1.5. testable_old(X1) :- knows_old(X2), knows_old(X1), knows_old(X2).
          Equivalent to:
210.1.5.1. testable_old(X1) :- knows_old(X2), knows_old(X1).
            Because the following simpler clause holds:
210.1.5.1.1. testable_old(X1) :- knows_old(X1).: see 168.
210.1.6. testable_old(X1) :- __type_11(X2), __def_52(X1), knows_old(X2).
          Equivalent to:
210.1.6.1. testable_old(X1) :- __def_52(X1), __type_11(X2), knows_old(X2).
            Because the following simpler clause holds:
210.1.6.1.1. testable_old(X1) :- __def_52(X1).
              By induction on X1 satisfying __def_52, must start with key.
210.1.6.1.1.1. testable_old(key(X1,X2)) :- __def_52(key(X1,X2)).
                __def_52(key(X1,X2)) must be by __def_52(key(X1,X2)) :- __def_53(X1), __def_2(X2).
210.1.6.1.1.1.1. testable_old(key(X1,X2)) :- __def_53(X1), __def_2(X2).
                  Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).
210.1.6.1.1.1.1.1. __def_51(X1) :- __def_53(X1), __def_2(X2).
                    Because the following simpler clause holds:
210.1.6.1.1.1.1.1.1. __def_51(X1) :- __def_53(X1).
                      Without any induction hypothesis:
210.1.6.1.1.1.1.1.1.1. __def_51(X1) :- __def_53(X1).
                        By induction on X1 satisfying __def_53, must start with pub.
210.1.6.1.1.1.1.1.1.1.1. __def_51(pub) :- __def_53(pub).
                          __def_53(pub) must be by __def_53(pub).
210.1.6.1.1.1.1.1.1.1.1.1. __def_51(pub).: see 143.
210.1.6.1.1.1.1.2. agent(X2) :- __def_53(X1), __def_2(X2).
                    Because the following simpler clause holds:
210.1.6.1.1.1.1.2.1. agent(X2) :- __def_2(X2).
                      Without any induction hypothesis:
210.1.6.1.1.1.1.2.1.1. agent(X1) :- __def_2(X1).
                        By induction on X2 satisfying __def_2, must start with i.
210.1.6.1.1.1.1.2.1.1.1. agent(i) :- __def_2(i).
                          __def_2(i) must be by __def_2(i).
210.1.6.1.1.1.1.2.1.1.1.1. agent(i).: see 18.1.1.1.1.1.1.
. lemma 211:211. knows_current(X1) :- __def_66 (X2,X1), __def_67(X2).
      __def_66 (X2,X1) must be by __def_66(X1,X2) :- __def_63(X1), knows_current(X2).
211.1. knows_current(X1) :- __def_63(X2), knows_current(X1), __def_67(X2).
        Equivalent to:
211.1.1. knows_current(X1) :- __def_63(X2), __def_67(X2), knows_current(X1).
          Because the following simpler clause holds:
211.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 212:212. testable_old(X1) :- testable_old(enc(X1,X2)), knows_old(X2).
      Equivalent to:
212.1. testable_old(X1) :- knows_old(X2), testable_old(enc(X1,X2)).
        Examine all ways of building testable_old(enc(X1,X2)) in the body.
        The 4 possibilities are:
        testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
        testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
212.1.1. testable_old(X1) :- __def_15(X1), __def_16(X2), knows_old(X2).
          Special case of:
212.1.1.1. #false() :- knows_old(X1), __def_16(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
212.1.1.1.1. #false() :- knows_old(dec(X1,X2)), __def_16(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
212.1.1.1.2. #false() :- knows_old(s(X1)), __def_16(s(X1)).
              knows_old(s(X1)) is impossible.
212.1.1.1.3. #false() :- knows_old(nil), __def_16(nil).
              knows_old(nil) is impossible.
212.1.1.1.4. #false() :- knows_old(i), __def_16(i).
              knows_old(i) is impossible.
212.1.1.1.5. #false() :- knows_old(p(X1)), __def_16(p(X1)).
              knows_old(p(X1)) is impossible.
212.1.1.1.6. #false() :- knows_old(key(X1,X2)), __def_16(key(X1,X2)).
              knows_old(key(X1,X2)) is impossible.
212.1.1.1.7. #false() :- knows_old(cons(X1,X2)), __def_16(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
212.1.1.1.8. #false() :- knows_old(crypt(X1,X2)), __def_16(crypt(X1,X2)).
              knows_old(crypt(X1,X2)) is impossible.
212.1.1.1.9. #false() :- knows_old(alice), __def_16(alice).
              knows_old(alice) is impossible.
212.1.1.1.10. #false() :- knows_old(enc(X1,X2)), __def_16(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
212.1.1.1.11. #false() :- knows_old(bob), __def_16(bob).
               knows_old(bob) is impossible.
212.1.1.1.12. #false() :- knows_old(server), __def_16(server).
               knows_old(server) is impossible.
212.1.2. testable_old(X1) :- __def_19(X1), __def_20(X2), knows_old(X2).
          Special case of:
212.1.2.1. #false() :- knows_old(X1), __def_20(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
212.1.2.1.1. #false() :- knows_old(dec(X1,X2)), __def_20(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
212.1.2.1.2. #false() :- knows_old(s(X1)), __def_20(s(X1)).
              knows_old(s(X1)) is impossible.
212.1.2.1.3. #false() :- knows_old(nil), __def_20(nil).
              knows_old(nil) is impossible.
212.1.2.1.4. #false() :- knows_old(i), __def_20(i).
              knows_old(i) is impossible.
212.1.2.1.5. #false() :- knows_old(p(X1)), __def_20(p(X1)).
              knows_old(p(X1)) is impossible.
212.1.2.1.6. #false() :- knows_old(key(X1,X2)), __def_20(key(X1,X2)).
              knows_old(key(X1,X2)) is impossible.
212.1.2.1.7. #false() :- knows_old(cons(X1,X2)), __def_20(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
212.1.2.1.8. #false() :- knows_old(crypt(X1,X2)), __def_20(crypt(X1,X2)).
              knows_old(crypt(X1,X2)) is impossible.
212.1.2.1.9. #false() :- knows_old(alice), __def_20(alice).
              knows_old(alice) is impossible.
212.1.2.1.10. #false() :- knows_old(enc(X1,X2)), __def_20(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
212.1.2.1.11. #false() :- knows_old(bob), __def_20(bob).
               knows_old(bob) is impossible.
212.1.2.1.12. #false() :- knows_old(server), __def_20(server).
               knows_old(server) is impossible.
212.1.3. testable_old(X1) :- __def_10(X1), __def_11(X2), knows_old(X2).
          Special case of:
212.1.3.1. #false() :- knows_old(X1), __def_11(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
212.1.3.1.1. #false() :- knows_old(dec(X1,X2)), __def_11(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
212.1.3.1.2. #false() :- knows_old(s(X1)), __def_11(s(X1)).
              knows_old(s(X1)) is impossible.
212.1.3.1.3. #false() :- knows_old(nil), __def_11(nil).
              knows_old(nil) is impossible.
212.1.3.1.4. #false() :- knows_old(i), __def_11(i).
              knows_old(i) is impossible.
212.1.3.1.5. #false() :- knows_old(p(X1)), __def_11(p(X1)).
              knows_old(p(X1)) is impossible.
212.1.3.1.6. #false() :- knows_old(key(X1,X2)), __def_11(key(X1,X2)).
              knows_old(key(X1,X2)) is impossible.
212.1.3.1.7. #false() :- knows_old(cons(X1,X2)), __def_11(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
212.1.3.1.8. #false() :- knows_old(crypt(X1,X2)), __def_11(crypt(X1,X2)).
              knows_old(crypt(X1,X2)) is impossible.
212.1.3.1.9. #false() :- knows_old(alice), __def_11(alice).
              knows_old(alice) is impossible.
212.1.3.1.10. #false() :- knows_old(enc(X1,X2)), __def_11(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
212.1.3.1.11. #false() :- knows_old(bob), __def_11(bob).
               knows_old(bob) is impossible.
212.1.3.1.12. #false() :- knows_old(server), __def_11(server).
               knows_old(server) is impossible.
212.1.4. testable_old(X1) :- testable_old(X1), knows_old(X2), knows_old(X2).
          Equivalent to:
212.1.4.1. testable_old(X1) :- knows_old(X2), testable_old(X1).: see 192.1.
. lemma 213:213. testable_old(key(X1,X2)) :- __type_14(X2), __def_58(X1).
      Equivalent to:
213.1. testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
        Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).
213.1.1. __def_58(X1) :- __def_58(X1), __type_14(X2).: see 7.6.3.1.
213.1.2. __type_14(X2) :- __def_58(X1), __type_14(X2).: see 7.6.3.2.
. lemma 214:214. knows_old(key(X1,X2)) :- agent(X2), __def_51(X1).
      Equivalent to:
214.1. knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
        Infer knows_old(key(X1,X2)) using knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
214.1.1. __def_51(X1) :- __def_51(X1), agent(X2).: see 7.6.1.1.
214.1.2. agent(X2) :- __def_51(X1), agent(X2).: see 7.6.1.2.
. lemma 215:215. testable_current(s(X1)) :- testable_current(X1).: see 195.1.5.1.1.2.1.
. lemma 216:216. testable_current(key(X1,X2)) :- __type_30(X2), __def_119(X1).
      Equivalent to:
216.1. testable_current(key(X1,X2)) :- __def_119(X1), __type_30(X2).
        Infer testable_current(key(X1,X2)) using testable_current(key(X1,X2)) :- __def_51(X1), agent(X2).
216.1.1. __def_51(X1) :- __def_119(X1), __type_30(X2).
          Because the following simpler clause holds:
216.1.1.1. __def_51(X1) :- __def_119(X1).
            By induction on X1 satisfying __def_119, must start with pub.
216.1.1.1.1. __def_51(pub) :- __def_119(pub).
              __def_119(pub) must be by __def_119(pub).
216.1.1.1.1.1. __def_51(pub).: see 143.
216.1.2. agent(X2) :- __def_119(X1), __type_30(X2).
          Because the following simpler clause holds:
216.1.2.1. agent(X1) :- __type_30(X1).
            By induction on X2 satisfying __type_30, must start with i.
216.1.2.1.1. agent(i) :- __type_30(i).
              __type_30(i) must be by __type_30(i).
216.1.2.1.1.1. agent(i).: see 18.1.1.1.1.1.1.
. lemma 217:217. knows_old(s(X1)) :- knows_old(X1).
      Infer knows_old(s(X1)) using knows_old(s(X)) :- knows_old(X).
217.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 218:218. testable_current(X1) :- testable_current(enc(X1,X2)), knows_current(X2).
      Equivalent to:
218.1. testable_current(X1) :- knows_current(X2), testable_current(enc(X1,X2)).
        Examine all ways of building testable_current(enc(X1,X2)) in the body.
        The 4 possibilities are:
        testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
        testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
        testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
        testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
218.1.1. testable_current(X1) :- __def_72(X1), __def_73(X2), knows_current(X2).
          Special case of:
218.1.1.1. #false() :- __def_73(X1), knows_current(X1).: see 207.1.1.1.
218.1.2. testable_current(X1) :- __def_80(X1), __def_81(X2), knows_current(X2).
          Special case of:
218.1.2.1. #false() :- __def_81(X1), knows_current(X1).: see 207.1.2.1.
218.1.3. testable_current(X1) :- testable_current(X1), knows_current(X2), knows_current(X2).
          Equivalent to:
218.1.3.1. testable_current(X1) :- knows_current(X2), testable_current(X1).: see 154.1.
218.1.4. testable_current(X1) :- __def_76(X1), __def_77(X2), knows_current(X2).
          Special case of:
218.1.4.1. #false() :- __def_77(X1), knows_current(X1).: see 207.1.4.1.
. lemma 219:219. knows_old(X1) :- knows_old(enc(X1,X2)), knows_old(X2).
      Equivalent to:
219.1. knows_old(X1) :- knows_old(X2), knows_old(enc(X1,X2)).
        Examine all ways of building knows_old(enc(X1,X2)) in the body.
        The 4 possibilities are:
        knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
        knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
219.1.1. knows_old(X1) :- __def_15(X1), __def_16(X2), knows_old(X2).
          Special case of:
219.1.1.1. #false() :- knows_old(X1), __def_16(X1).: see 212.1.1.1.
219.1.2. knows_old(X1) :- __def_19(X1), __def_20(X2), knows_old(X2).
          Special case of:
219.1.2.1. #false() :- knows_old(X1), __def_20(X1).: see 212.1.2.1.
219.1.3. knows_old(X1) :- __def_10(X1), __def_11(X2), knows_old(X2).
          Special case of:
219.1.3.1. #false() :- knows_old(X1), __def_11(X1).: see 212.1.3.1.
219.1.4. knows_old(X1) :- knows_old(X1), knows_old(X2), knows_old(X2).: see 178.1.1.
. lemma 220:220. knows_current(X1) :- knows_current(cons(X1,X2)).
      knows_current(cons(X1,X2)) must be by knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
220.1. knows_current(X1) :- knows_current(X1), knows_current(X2).
        Equivalent to:
220.1.1. knows_current(X1) :- knows_current(X2), knows_current(X1).: see 162.1.
. lemma 221:221. knows_old(X1) :- knows_old(p(X1)).
      knows_old(p(X1)) must be by knows_old(p(X)) :- knows_old(X).
221.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 222:222. testable_old(X1) :- testable_old(dec(X2,X1)), knows_old(X2).
      Equivalent to:
222.1. testable_old(X1) :- knows_old(X2), testable_old(dec(X2,X1)).
        testable_old(dec(X2,X1)) must be by testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
222.1.1. testable_old(X1) :- testable_old(X2), knows_old(X1), knows_old(X2).: see 206.1.4.
. lemma 223:223. knows_current(passwd_old(X1,X2)).
      Infer knows_current(passwd_old(X1,X2)) using knows_current(passwd_old(X1,X2)).
. lemma 224:224. testable_old(X1) :- knows_old(enc(X2,X1)), testable_old(X2).
      Examine all ways of building knows_old(enc(X2,X1)) in the body.
      The 4 possibilities are:
      knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
      knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
      knows_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
      knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
224.1. testable_old(X1) :- __def_15(X2), __def_16(X1), testable_old(X2).
        Special case of:
224.1.1. #false() :- testable_old(X1), __def_15(X1).: see 174.1.1.1.
224.2. testable_old(X1) :- __def_19(X2), __def_20(X1), testable_old(X2).
        Special case of:
224.2.1. #false() :- __def_19(X1), testable_old(X1).: see 174.1.2.1.
224.3. testable_old(X1) :- __def_10(X2), __def_11(X1), testable_old(X2).
        Special case of:
224.3.1. #false() :- __def_10(X1), testable_old(X1).: see 174.1.3.1.
224.4. testable_old(X1) :- knows_old(X2), knows_old(X1), testable_old(X2).: see 189.1.
. lemma 225:225. knows_current(enc(X1,X2)) :- knows_current(X2), knows_current(X1).
      Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
225.1. knows_current(X1) :- knows_current(X2), knows_current(X1).: see 162.1.
225.2. knows_current(X2) :- knows_current(X2), knows_current(X1).: see 181.2.
. lemma 226:226. testable_old(p(X1)) :- testable_old(X1).
      Infer testable_old(p(X1)) using testable_old(p(X)) :- testable_old(X).
226.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
. lemma 227:227. knows_current(enc(X1,X2)) :- __def_77(X2), __def_76(X1).
      Equivalent to:
227.1. knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
        Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
227.1.1. __def_76(X1) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.1.
227.1.2. __def_77(X2) :- __def_76(X1), __def_77(X2).: see 44.1.1.12.4.2.
. lemma 228:228. testable_old(dec(X1,X2)) :- knows_old(X2), testable_old(X1).
      Infer testable_old(dec(X1,X2)) using testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
228.1. testable_old(X1) :- knows_old(X2), testable_old(X1).: see 192.1.
228.2. knows_old(X2) :- knows_old(X2), testable_old(X1).: see 192.2.
. lemma 229:229. bob_key_old (X1,X2) :- __def_50(X2), __type_10(X1).
      Infer bob_key_old (X1,X2) using bob_key_old(X1,X2).
. lemma 230:230. testable_old(X1) :- testable_old(s(X1)).
      testable_old(s(X1)) must be by testable_old(s(X)) :- testable_old(X).
230.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
. lemma 231:231. testable_old(X1) :- testable_old(crypt(X1,X2)), knows_old(X2).
      Equivalent to:
231.1. testable_old(X1) :- knows_old(X2), testable_old(crypt(X1,X2)).
        Examine all ways of building testable_old(crypt(X1,X2)) in the body.
        The 6 possibilities are:
        testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
        testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
        testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
        testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
        testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
        testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
231.1.1. testable_old(X1) :- __type_12(X1), __def_54(X2), knows_old(X2).
          Equivalent to:
231.1.1.1. testable_old(X1) :- __def_54(X2), __type_12(X1), knows_old(X2).
            Because the following simpler clause holds:
231.1.1.1.1. testable_old(X1) :- __type_12(X1).
              By induction on X1 satisfying __type_12, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
231.1.1.1.1.1. testable_old(dec(X1,X2)) :- __type_12(dec(X1,X2)).
                __type_12(dec(X1,X2)) must be by __type_12(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
231.1.1.1.1.1.1. testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
                  Infer testable_old(dec(X1,X2)) using testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
231.1.1.1.1.1.1.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
231.1.1.1.1.1.1.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
231.1.1.1.1.2. testable_old(s(X1)) :- __type_12(s(X1)).
                __type_12(s(X1)) must be by __type_12(s(X)) :- testable_old(X).
231.1.1.1.1.2.1. testable_old(s(X1)) :- testable_old(X1).
                  Infer testable_old(s(X1)) using testable_old(s(X)) :- testable_old(X).
231.1.1.1.1.2.1.1. testable_old(X1) :- testable_old(X1).: see 7.1.1.1.1.
231.1.1.1.1.3. testable_old(nil) :- __type_12(nil).
                __type_12(nil) must be by __type_12(nil).
231.1.1.1.1.3.1. testable_old(nil).: see 168.3.1.
231.1.1.1.1.4. testable_old(i) :- __type_12(i).
                __type_12(i) must be by __type_12(i).
231.1.1.1.1.4.1. testable_old(i).: see 168.4.1.
231.1.1.1.1.5. testable_old(p(X1)) :- __type_12(p(X1)).
                __type_12(p(X1)) must be by __type_12(p(X)) :- testable_old(X).
231.1.1.1.1.5.1. testable_old(p(X1)) :- testable_old(X1).: see 226.
231.1.1.1.1.6. testable_old(key(X1,X2)) :- __type_12(key(X1,X2)).
                Examine all ways of building __type_12(key(X1,X2)) in the body.
                The 3 possibilities are:
                __type_12(key(X1,X2)) :- __def_51(X1), agent(X2).
                __type_12(key(X1,X2)) :- __def_61(X1), __type_16(X2).
                __type_12(key(X1,X2)) :- __def_58(X1), __type_14(X2).
231.1.1.1.1.6.1. testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).: see 168.6.1.
231.1.1.1.1.6.2. testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
                  Infer testable_old(key(X1,X2)) using testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).
231.1.1.1.1.6.2.1. __def_61(X1) :- __def_61(X1), __type_16(X2).: see 7.6.2.1.
231.1.1.1.1.6.2.2. __type_16(X2) :- __def_61(X1), __type_16(X2).: see 7.6.2.2.
231.1.1.1.1.6.3. testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).: see 213.1.
231.1.1.1.1.7. testable_old(cons(X1,X2)) :- __type_12(cons(X1,X2)).
                Examine all ways of building __type_12(cons(X1,X2)) in the body.
                The 2 possibilities are:
                __type_12(cons(X1,X2)) :- testable_old(X1).
                __type_12(cons(X1,X2)) :- testable_old(X2).
231.1.1.1.1.7.1. testable_old(cons(X1,X2)) :- testable_old(X1).: see 198.
231.1.1.1.1.7.2. testable_old(cons(X1,X2)) :- testable_old(X2).: see 161.
231.1.1.1.1.8. testable_old(crypt(X1,X2)) :- __type_12(crypt(X1,X2)).
                Examine all ways of building __type_12(crypt(X1,X2)) in the body.
                The 6 possibilities are:
                __type_12(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
                __type_12(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                __type_12(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                __type_12(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                __type_12(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
                __type_12(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
231.1.1.1.1.8.1. testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
                  Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
231.1.1.1.1.8.1.1. __type_12(X1) :- __type_12(X1), __def_54(X2).: see 7.8.1.1.
231.1.1.1.1.8.1.2. __def_54(X2) :- __type_12(X1), __def_54(X2).: see 7.8.1.2.
231.1.1.1.1.8.2. testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 168.8.1.
231.1.1.1.1.8.3. testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 168.8.2.
231.1.1.1.1.8.4. testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 168.8.3.
231.1.1.1.1.8.5. testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).: see 168.8.4.
231.1.1.1.1.8.6. testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
                  Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
231.1.1.1.1.8.6.1. __type_11(X1) :- __type_11(X1), __def_52(X2).: see 7.8.6.1.
231.1.1.1.1.8.6.2. __def_52(X2) :- __type_11(X1), __def_52(X2).: see 7.8.6.2.
231.1.1.1.1.9. testable_old(alice) :- __type_12(alice).
                __type_12(alice) must be by __type_12(alice).
231.1.1.1.1.9.1. testable_old(alice).: see 168.9.1.
231.1.1.1.1.10. testable_old(enc(X1,X2)) :- __type_12(enc(X1,X2)).
                 Examine all ways of building __type_12(enc(X1,X2)) in the body.
                 The 4 possibilities are:
                 __type_12(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                 __type_12(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                 __type_12(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                 __type_12(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
231.1.1.1.1.10.1. testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).: see 168.10.1.
231.1.1.1.1.10.2. testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).: see 168.10.2.
231.1.1.1.1.10.3. testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).: see 168.10.3.
231.1.1.1.1.10.4. testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
                   Infer testable_old(enc(X1,X2)) using testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
231.1.1.1.1.10.4.1. testable_old(X1) :- testable_old(X1), knows_old(X2).: see 7.1.1.1.
231.1.1.1.1.10.4.2. knows_old(X2) :- testable_old(X1), knows_old(X2).: see 7.1.1.2.
231.1.1.1.1.11. testable_old(bob) :- __type_12(bob).
                 __type_12(bob) must be by __type_12(bob).
231.1.1.1.1.11.1. testable_old(bob).: see 168.11.1.
231.1.1.1.1.12. testable_old(server) :- __type_12(server).
                 __type_12(server) must be by __type_12(server).
231.1.1.1.1.12.1. testable_old(server).: see 168.12.1.
231.1.2. testable_old(X1) :- __def_28(X1), __def_29(X2), knows_old(X2).
          Because the following simpler clause holds:
231.1.2.1. testable_old(X1) :- __def_28(X1).
            By induction on X1 satisfying __def_28, must start with cons.
231.1.2.1.1. testable_old(cons(X1,X2)) :- __def_28(cons(X1,X2)).
              __def_28(cons(X1,X2)) must be by __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
231.1.2.1.1.1. testable_old(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
                Infer testable_old(cons(X1,X2)) using testable_old(cons(X1,X2)) :- testable_old(X2).
231.1.2.1.1.1.1. testable_old(X2) :- __type_5(X1), __def_30(X2).
                  Because the following simpler clause holds:
231.1.2.1.1.1.1.1. testable_old(X2) :- __def_30(X2).
                    Without any induction hypothesis:
231.1.2.1.1.1.1.1.1. testable_old(X1) :- __def_30(X1).
                      By induction on X2 satisfying __def_30, must start with cons.
231.1.2.1.1.1.1.1.1.1. testable_old(cons(X1,X2)) :- __def_30(cons(X1,X2)).
                        __def_30(cons(X1,X2)) must be by __def_30(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
231.1.2.1.1.1.1.1.1.1.1. testable_old(cons(X1,X2)) :- __def_31(X1), __def_32(X2).
                          Infer testable_old(cons(X1,X2)) using testable_old(cons(X1,X2)) :- testable_old(X2).
231.1.2.1.1.1.1.1.1.1.1.1. testable_old(X2) :- __def_31(X1), __def_32(X2).
                            Because the following simpler clause holds:
231.1.2.1.1.1.1.1.1.1.1.1.1. testable_old(X2) :- __def_32(X2).
                              Without any induction hypothesis:
231.1.2.1.1.1.1.1.1.1.1.1.1.1. testable_old(X1) :- __def_32(X1).
                                By induction on X2 satisfying __def_32, must start with nil.
231.1.2.1.1.1.1.1.1.1.1.1.1.1.1. testable_old(nil) :- __def_32(nil).
                                  __def_32(nil) must be by __def_32(nil).
231.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1. testable_old(nil).: see 168.3.1.
231.1.3. testable_old(X1) :- __def_24(X1), __def_25(X2), knows_old(X2).
          Special case of:
231.1.3.1. #false() :- knows_old(X1), __def_25(X1).
            By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
231.1.3.1.1. #false() :- knows_old(dec(X1,X2)), __def_25(dec(X1,X2)).
              knows_old(dec(X1,X2)) is impossible.
231.1.3.1.2. #false() :- knows_old(s(X1)), __def_25(s(X1)).
              knows_old(s(X1)) is impossible.
231.1.3.1.3. #false() :- knows_old(nil), __def_25(nil).
              knows_old(nil) is impossible.
231.1.3.1.4. #false() :- knows_old(i), __def_25(i).
              knows_old(i) is impossible.
231.1.3.1.5. #false() :- knows_old(p(X1)), __def_25(p(X1)).
              knows_old(p(X1)) is impossible.
231.1.3.1.6. #false() :- knows_old(key(X1,X2)), __def_25(key(X1,X2)).
              Examine all ways of building knows_old(key(X1,X2)) in the body.
              The 2 possibilities are:
              knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
              knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
231.1.3.1.6.1. #false() :- __def_25(key(X1,X2)), __def_51(X1), agent(X2).
                __def_25(key(X1,X2)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
231.1.3.1.6.1.1. #false() :- __type_4(X2), __def_26(X1), agent(X2), __def_51(X1).
                  This is implied by:
231.1.3.1.6.1.1.1. #false() :- __def_26(X1), __def_51(X1).
                    Without any induction hypothesis:
231.1.3.1.6.1.1.1.1. #false() :- __def_26(X1), __def_51(X1).
                      By induction on X1 satisfying __def_26, must start with sym.
231.1.3.1.6.1.1.1.1.1. #false() :- __def_26(sym), __def_51(sym).
                        __def_26(sym) is impossible.
231.1.3.1.6.2. #false() :- __def_25(key(X1,X2)), __def_62(X1), __def_63(X2).
                __def_25(key(X1,X2)) must be by __def_25(key(X1,X2)) :- __def_26(X1), __type_4(X2).
231.1.3.1.6.2.1. #false() :- __type_4(X2), __def_26(X1), __def_63(X2), __def_62(X1).
                  This is implied by:
231.1.3.1.6.2.1.1. #false() :- __def_26(X1), __def_62(X1).
                    Without any induction hypothesis:
231.1.3.1.6.2.1.1.1. #false() :- __def_26(X1), __def_62(X1).
                      By induction on X1 satisfying __def_26, must start with sym.
231.1.3.1.6.2.1.1.1.1. #false() :- __def_26(sym), __def_62(sym).
                        __def_26(sym) is impossible.
231.1.3.1.7. #false() :- knows_old(cons(X1,X2)), __def_25(cons(X1,X2)).
              knows_old(cons(X1,X2)) is impossible.
231.1.3.1.8. #false() :- knows_old(crypt(X1,X2)), __def_25(crypt(X1,X2)).
              knows_old(crypt(X1,X2)) is impossible.
231.1.3.1.9. #false() :- knows_old(alice), __def_25(alice).
              knows_old(alice) is impossible.
231.1.3.1.10. #false() :- knows_old(enc(X1,X2)), __def_25(enc(X1,X2)).
               knows_old(enc(X1,X2)) is impossible.
231.1.3.1.11. #false() :- knows_old(bob), __def_25(bob).
               knows_old(bob) is impossible.
231.1.3.1.12. #false() :- knows_old(server), __def_25(server).
               knows_old(server) is impossible.
231.1.4. testable_old(X1) :- __type_7(X1), __def_44(X2), knows_old(X2).
          Equivalent to:
231.1.4.1. testable_old(X1) :- __def_44(X2), __type_7(X1), knows_old(X2).
            Special case of:
231.1.4.1.1. #false() :- knows_old(X1), __def_44(X1).
              By induction on X1 satisfying knows_old, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
231.1.4.1.1.1. #false() :- knows_old(dec(X1,X2)), __def_44(dec(X1,X2)).
                knows_old(dec(X1,X2)) is impossible.
231.1.4.1.1.2. #false() :- knows_old(s(X1)), __def_44(s(X1)).
                knows_old(s(X1)) is impossible.
231.1.4.1.1.3. #false() :- knows_old(nil), __def_44(nil).
                knows_old(nil) is impossible.
231.1.4.1.1.4. #false() :- knows_old(i), __def_44(i).
                knows_old(i) is impossible.
231.1.4.1.1.5. #false() :- knows_old(p(X1)), __def_44(p(X1)).
                knows_old(p(X1)) is impossible.
231.1.4.1.1.6. #false() :- knows_old(key(X1,X2)), __def_44(key(X1,X2)).
                Examine all ways of building knows_old(key(X1,X2)) in the body.
                The 2 possibilities are:
                knows_old(key(X1,X2)) :- __def_51(X1), agent(X2).
                knows_old(key(X1,X2)) :- __def_62(X1), __def_63(X2).
231.1.4.1.1.6.1. #false() :- __def_44(key(X1,X2)), __def_51(X1), agent(X2).
                  __def_44(key(X1,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
231.1.4.1.1.6.1.1. #false() :- agent(X2), __def_45(X1), __def_51(X1), __type_8(X2).
                    This is implied by:
231.1.4.1.1.6.1.1.1. #false() :- __def_45(X1), __def_51(X1).
                      Without any induction hypothesis:
231.1.4.1.1.6.1.1.1.1. #false() :- __def_45(X1), __def_51(X1).
                        By induction on X1 satisfying __def_45, must start with sym.
231.1.4.1.1.6.1.1.1.1.1. #false() :- __def_45(sym), __def_51(sym).
                          __def_45(sym) is impossible.
231.1.4.1.1.6.2. #false() :- __def_44(key(X1,X2)), __def_62(X1), __def_63(X2).
                  __def_44(key(X1,X2)) must be by __def_44(key(X1,X2)) :- __def_45(X1), __type_8(X2).
231.1.4.1.1.6.2.1. #false() :- __def_63(X2), __def_62(X1), __def_45(X1), __type_8(X2).
                    This is implied by:
231.1.4.1.1.6.2.1.1. #false() :- __def_45(X1), __def_62(X1).
                      Without any induction hypothesis:
231.1.4.1.1.6.2.1.1.1. #false() :- __def_45(X1), __def_62(X1).
                        By induction on X1 satisfying __def_45, must start with sym.
231.1.4.1.1.6.2.1.1.1.1. #false() :- __def_45(sym), __def_62(sym).
                          __def_45(sym) is impossible.
231.1.4.1.1.7. #false() :- knows_old(cons(X1,X2)), __def_44(cons(X1,X2)).
                knows_old(cons(X1,X2)) is impossible.
231.1.4.1.1.8. #false() :- knows_old(crypt(X1,X2)), __def_44(crypt(X1,X2)).
                knows_old(crypt(X1,X2)) is impossible.
231.1.4.1.1.9. #false() :- knows_old(alice), __def_44(alice).
                knows_old(alice) is impossible.
231.1.4.1.1.10. #false() :- knows_old(enc(X1,X2)), __def_44(enc(X1,X2)).
                 knows_old(enc(X1,X2)) is impossible.
231.1.4.1.1.11. #false() :- knows_old(bob), __def_44(bob).
                 knows_old(bob) is impossible.
231.1.4.1.1.12. #false() :- knows_old(server), __def_44(server).
                 knows_old(server) is impossible.
231.1.5. testable_old(X1) :- knows_old(X1), knows_old(X2), knows_old(X2).
          Equivalent to:
231.1.5.1. testable_old(X1) :- knows_old(X2), knows_old(X1).: see 210.1.5.1.
231.1.6. testable_old(X1) :- __type_11(X1), __def_52(X2), knows_old(X2).
          Equivalent to:
231.1.6.1. testable_old(X1) :- __def_52(X2), __type_11(X1), knows_old(X2).
            Because the following simpler clause holds:
231.1.6.1.1. testable_old(X1) :- __type_11(X1).
              By induction on X1 satisfying __type_11, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
231.1.6.1.1.1. testable_old(dec(X1,X2)) :- __type_11(dec(X1,X2)).
                __type_11(dec(X1,X2)) must be by __type_11(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
231.1.6.1.1.1.1. testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).: see 231.1.1.1.1.1.1.
231.1.6.1.1.2. testable_old(s(X1)) :- __type_11(s(X1)).
                __type_11(s(X1)) must be by __type_11(s(X)) :- testable_old(X).
231.1.6.1.1.2.1. testable_old(s(X1)) :- testable_old(X1).: see 231.1.1.1.1.2.1.
231.1.6.1.1.3. testable_old(nil) :- __type_11(nil).
                __type_11(nil) must be by __type_11(nil).
231.1.6.1.1.3.1. testable_old(nil).: see 168.3.1.
231.1.6.1.1.4. testable_old(i) :- __type_11(i).
                __type_11(i) must be by __type_11(i).
231.1.6.1.1.4.1. testable_old(i).: see 168.4.1.
231.1.6.1.1.5. testable_old(p(X1)) :- __type_11(p(X1)).
                __type_11(p(X1)) must be by __type_11(p(X)) :- testable_old(X).
231.1.6.1.1.5.1. testable_old(p(X1)) :- testable_old(X1).: see 226.
231.1.6.1.1.6. testable_old(key(X1,X2)) :- __type_11(key(X1,X2)).
                Examine all ways of building __type_11(key(X1,X2)) in the body.
                The 3 possibilities are:
                __type_11(key(X1,X2)) :- __def_51(X1), agent(X2).
                __type_11(key(X1,X2)) :- __def_61(X1), __type_16(X2).
                __type_11(key(X1,X2)) :- __def_58(X1), __type_14(X2).
231.1.6.1.1.6.1. testable_old(key(X1,X2)) :- __def_51(X1), agent(X2).: see 168.6.1.
231.1.6.1.1.6.2. testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).: see 231.1.1.1.1.6.2.
231.1.6.1.1.6.3. testable_old(key(X1,X2)) :- __def_58(X1), __type_14(X2).: see 213.1.
231.1.6.1.1.7. testable_old(cons(X1,X2)) :- __type_11(cons(X1,X2)).
                Examine all ways of building __type_11(cons(X1,X2)) in the body.
                The 2 possibilities are:
                __type_11(cons(X1,X2)) :- testable_old(X1).
                __type_11(cons(X1,X2)) :- testable_old(X2).
231.1.6.1.1.7.1. testable_old(cons(X1,X2)) :- testable_old(X1).: see 198.
231.1.6.1.1.7.2. testable_old(cons(X1,X2)) :- testable_old(X2).: see 161.
231.1.6.1.1.8. testable_old(crypt(X1,X2)) :- __type_11(crypt(X1,X2)).
                Examine all ways of building __type_11(crypt(X1,X2)) in the body.
                The 6 possibilities are:
                __type_11(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
                __type_11(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                __type_11(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                __type_11(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                __type_11(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
                __type_11(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
231.1.6.1.1.8.1. testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).: see 231.1.1.1.1.8.1.
231.1.6.1.1.8.2. testable_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 168.8.1.
231.1.6.1.1.8.3. testable_old(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 168.8.2.
231.1.6.1.1.8.4. testable_old(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 168.8.3.
231.1.6.1.1.8.5. testable_old(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).: see 168.8.4.
231.1.6.1.1.8.6. testable_old(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).: see 231.1.1.1.1.8.6.
231.1.6.1.1.9. testable_old(alice) :- __type_11(alice).
                __type_11(alice) must be by __type_11(alice).
231.1.6.1.1.9.1. testable_old(alice).: see 168.9.1.
231.1.6.1.1.10. testable_old(enc(X1,X2)) :- __type_11(enc(X1,X2)).
                 Examine all ways of building __type_11(enc(X1,X2)) in the body.
                 The 4 possibilities are:
                 __type_11(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
                 __type_11(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
                 __type_11(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
                 __type_11(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
231.1.6.1.1.10.1. testable_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).: see 168.10.1.
231.1.6.1.1.10.2. testable_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).: see 168.10.2.
231.1.6.1.1.10.3. testable_old(enc(X1,X2)) :- __def_10(X1), __def_11(X2).: see 168.10.3.
231.1.6.1.1.10.4. testable_old(enc(X1,X2)) :- testable_old(X1), knows_old(X2).: see 231.1.1.1.1.10.4.
231.1.6.1.1.11. testable_old(bob) :- __type_11(bob).
                 __type_11(bob) must be by __type_11(bob).
231.1.6.1.1.11.1. testable_old(bob).: see 168.11.1.
231.1.6.1.1.12. testable_old(server) :- __type_11(server).
                 __type_11(server) must be by __type_11(server).
231.1.6.1.1.12.1. testable_old(server).: see 168.12.1.
. lemma 232:232. testable_old(key(X1,X2)) :- __type_16(X2), __def_61(X1).
      Equivalent to:
232.1. testable_old(key(X1,X2)) :- __def_61(X1), __type_16(X2).: see 231.1.1.1.1.6.2.
. lemma 233:233. knows_old(X1) :- __def_1 (X2,X1), __def_2(X2).
      __def_1 (X2,X1) must be by __def_1(X1,X2) :- agent(X1), knows_old(X2).
233.1. knows_old(X1) :- agent(X2), knows_old(X1), __def_2(X2).
        Equivalent to:
233.1.1. knows_old(X1) :- __def_2(X2), agent(X2), knows_old(X1).
          Because the following simpler clause holds:
233.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 234:234. testable_current(X1) :- testable_current(enc(X2,X1)), knows_current(X2).
      Equivalent to:
234.1. testable_current(X1) :- knows_current(X2), testable_current(enc(X2,X1)).
        Examine all ways of building testable_current(enc(X2,X1)) in the body.
        The 4 possibilities are:
        testable_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
        testable_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
        testable_current(enc(X1,X2)) :- testable_current(X1), knows_current(X2).
        testable_current(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
234.1.1. testable_current(X1) :- __def_72(X2), __def_73(X1), knows_current(X2).
          Special case of:
234.1.1.1. #false() :- __def_72(X1), knows_current(X1).
            By induction on X1 satisfying __def_72, must start with key.
234.1.1.1.1. #false() :- __def_72(key(X1,X2)), knows_current(key(X1,X2)).
              __def_72(key(X1,X2)) must be by __def_72(key(X1,X2)) :- __def_12(X1), __def_74(X2).
234.1.1.1.1.1. #false() :- knows_current(key(X1,X2)), __def_12(X1), __def_74(X2).
                Examine all ways of building knows_current(key(X1,X2)) in the body.
                The 3 possibilities are:
                knows_current(key(X1,X2)) :- __def_51(X1), agent(X2).
                knows_current(key(X1,X2)) :- __def_62(X1), __def_63(X2).
                knows_current(key(X1,X2)) :- __def_12(X1), __def_13(X2).
234.1.1.1.1.1.1. #false() :- __def_74(X2), agent(X2), __def_51(X1), __def_12(X1).: see 166.1.1.1.1.1.
234.1.1.1.1.1.2. #false() :- __def_74(X2), __def_63(X2), __def_62(X1), __def_12(X1).
                  This is implied by:
234.1.1.1.1.1.2.1. #false() :- __def_12(X1), __def_62(X1).: see 206.1.3.1.6.2.1.1.
234.1.1.1.1.1.3. #false() :- __def_74(X2), __def_13(X2), __def_12(X1).: see 166.1.1.1.1.4.
234.1.2. testable_current(X1) :- __def_80(X2), __def_81(X1), knows_current(X2).
          Special case of:
234.1.2.1. #false() :- __def_80(X1), knows_current(X1).
            By induction on X1 satisfying __def_80, must start with crypt.
234.1.2.1.1. #false() :- __def_80(crypt(X1,X2)), knows_current(crypt(X1,X2)).
              __def_80(crypt(X1,X2)) must be by __def_80(crypt(X1,X2)) :- __def_82(X1), __def_83(X2).
234.1.2.1.1.1. #false() :- knows_current(crypt(X1,X2)), __def_82(X1), __def_83(X2).
                Examine all ways of building knows_current(crypt(X1,X2)) in the body.
                The 9 possibilities are:
                knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
                knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
                knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
                knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
                knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
234.1.2.1.1.1.1. #false() :- __def_105(X2), __type_22(X1), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.1.
234.1.2.1.1.1.2. #false() :- __def_28(X1), __def_29(X2), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.2.
234.1.2.1.1.1.3. #false() :- __def_85(X1), __def_86(X2), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.3.
234.1.2.1.1.1.4. #false() :- __def_22(X2), __def_21(X1), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.4.
234.1.2.1.1.1.5. #false() :- __def_17(X1), __type_2(X2), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.6.
234.1.2.1.1.1.6. #false() :- __def_24(X1), __def_25(X2), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.8.
234.1.2.1.1.1.7. #false() :- __def_44(X2), __type_7(X1), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.9.
234.1.2.1.1.1.8. #false() :- __def_98(X2), __def_97(X1), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.10.
234.1.2.1.1.1.9. #false() :- knows_current(X1), knows_current(X2), __def_83(X2), __def_82(X1).: see 166.2.1.1.1.11.
234.1.3. testable_current(X1) :- testable_current(X2), knows_current(X1), knows_current(X2).: see 185.1.1.
234.1.4. testable_current(X1) :- __def_76(X2), __def_77(X1), knows_current(X2).
          Special case of:
234.1.4.1. #false() :- __def_76(X1), knows_current(X1).
            By induction on X1 satisfying __def_76, must start with crypt.
234.1.4.1.1. #false() :- __def_76(crypt(X1,X2)), knows_current(crypt(X1,X2)).
              __def_76(crypt(X1,X2)) must be by __def_76(crypt(X1,X2)) :- __def_78(X1), __type_17(X2).
234.1.4.1.1.1. #false() :- knows_current(crypt(X1,X2)), __def_78(X1), __type_17(X2).
                Examine all ways of building knows_current(crypt(X1,X2)) in the body.
                The 9 possibilities are:
                knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
                knows_current(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
                knows_current(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
                knows_current(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
                knows_current(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
                knows_current(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
                knows_current(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
                knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
                knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
234.1.4.1.1.1.1. #false() :- __def_105(X2), __def_78(X1), __type_17(X2), __type_22(X1).: see 166.4.1.1.1.1.
234.1.4.1.1.1.2. #false() :- __def_28(X1), __def_29(X2), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.2.
234.1.4.1.1.1.3. #false() :- __def_85(X1), __def_86(X2), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.3.
234.1.4.1.1.1.4. #false() :- __def_22(X2), __def_21(X1), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.4.
234.1.4.1.1.1.5. #false() :- __def_17(X1), __type_2(X2), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.6.
234.1.4.1.1.1.6. #false() :- __def_24(X1), __def_25(X2), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.8.
234.1.4.1.1.1.7. #false() :- __def_44(X2), __type_7(X1), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.9.
234.1.4.1.1.1.8. #false() :- __def_98(X2), __def_97(X1), __def_78(X1), __type_17(X2).: see 166.4.1.1.1.10.
234.1.4.1.1.1.9. #false() :- __def_78(X1), __type_17(X2), knows_current(X1), knows_current(X2).: see 166.4.1.1.1.11.
. lemma 235:235. knows_current(nil).: see 177.3.1.
. lemma 236:236. testable_old(X1) :- testable_old(dec(X1,X2)), knows_old(X2).
      Equivalent to:
236.1. testable_old(X1) :- knows_old(X2), testable_old(dec(X1,X2)).
        testable_old(dec(X1,X2)) must be by testable_old(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
236.1.1. testable_old(X1) :- testable_old(X1), knows_old(X2), knows_old(X2).: see 212.1.4.
. lemma 237:237. testable_current(X1) :- testable_current(dec(X1,X2)), knows_current(X2).
      Equivalent to:
237.1. testable_current(X1) :- knows_current(X2), testable_current(dec(X1,X2)).
        testable_current(dec(X1,X2)) must be by testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
237.1.1. testable_current(X1) :- testable_current(X1), knows_current(X2), knows_current(X2).: see 218.1.3.
. lemma 238:238. knows_old(X1) :- __def_3 (X2,X1), __def_4(X2).
      __def_3 (X2,X1) must be by __def_3(X1,X2) :- __def_63(X1), knows_old(X2).
238.1. knows_old(X1) :- __def_63(X2), knows_old(X1), __def_4(X2).
        Equivalent to:
238.1.1. knows_old(X1) :- __def_4(X2), __def_63(X2), knows_old(X1).
          Because the following simpler clause holds:
238.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. lemma 239:239. knows_old(enc(X1,X2)) :- __def_20(X2), __def_19(X1).
      Equivalent to:
239.1. knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
        Infer knows_old(enc(X1,X2)) using knows_old(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
239.1.1. __def_19(X1) :- __def_19(X1), __def_20(X2).: see 7.10.2.1.
239.1.2. __def_20(X2) :- __def_19(X1), __def_20(X2).: see 7.10.2.2.
. lemma 240:240. knows_current(X1) :- knows_current(s(X1)).
      knows_current(s(X1)) must be by knows_current(s(X)) :- knows_current(X).
240.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 241:241. knows_current(X1) :- __def_64 (X2,X1), __def_65(X2).
      Examine all ways of building __def_64 (X2,X1) in the body.
      The 3 possibilities are:
      __def_64(X1,X2) :- __def_13(X1), knows_current(X2).
      __def_64(X1,X2) :- __def_13(X1), __def_17(X2).
      __def_64(X1,X2) :- agent(X1), knows_current(X2).
241.1. knows_current(X1) :- __def_13(X2), knows_current(X1), __def_65(X2).
        Equivalent to:
241.1.1. knows_current(X1) :- __def_13(X2), __def_65(X2), knows_current(X1).
          Because the following simpler clause holds:
241.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
241.2. knows_current(X1) :- __def_13(X2), __def_17(X1), __def_65(X2).
        Special case of:
241.2.1. #false() :- __def_65(X1), __def_13(X1).
          By induction on X1 satisfying __def_65, must start with i.
241.2.1.1. #false() :- __def_65(i), __def_13(i).
            __def_65(i) is impossible.
241.3. knows_current(X1) :- agent(X2), knows_current(X1), __def_65(X2).
        Equivalent to:
241.3.1. knows_current(X1) :- __def_65(X2), agent(X2), knows_current(X1).
          Because the following simpler clause holds:
241.3.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 242:242. knows_old(X1) :- agent(X1).
      By induction on X1 satisfying agent, X1 must start with i, alice, bob or server.
242.1. knows_old(i) :- agent(i).
        agent(i) must be by agent(i).
242.1.1. knows_old(i).: see 32.1.1.1.1.1.1.
242.2. knows_old(alice) :- agent(alice).
        agent(alice) must be by agent(alice).
242.2.1. knows_old(alice).: see 32.1.1.1.1.2.1.
242.3. knows_old(bob) :- agent(bob).
        agent(bob) must be by agent(bob).
242.3.1. knows_old(bob).: see 32.1.1.1.1.3.1.
242.4. knows_old(server) :- agent(server).
        agent(server) must be by agent(server).
242.4.1. knows_old(server).: see 32.1.1.1.1.4.1.
. lemma 243:243. testable_current(X1) :- knows_current(dec(X2,X1)), testable_current(X2).
      knows_current(dec(X2,X1)) must be by knows_current(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
243.1. testable_current(X1) :- knows_current(X2), knows_current(X1), testable_current(X2).: see 166.3.
. lemma 244:244. knows_current(enc(X1,X2)) :- __def_81(X2), __def_80(X1).
      Equivalent to:
244.1. knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
        Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
244.1.1. __def_80(X1) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.1.
244.1.2. __def_81(X2) :- __def_80(X1), __def_81(X2).: see 44.1.1.12.2.2.
. lemma 245:245. knows_current(cons(X1,X2)) :- __def_70(X2), __type_1(X1).
      Infer knows_current(cons(X1,X2)) using knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
245.1. knows_current(X1) :- __def_70(X2), __type_1(X1).
        Because the following simpler clause holds:
245.1.1. knows_current(X1) :- __type_1(X1).: see 18.1.1.2.1.
245.2. knows_current(X2) :- __def_70(X2), __type_1(X1).
        Because the following simpler clause holds:
245.2.1. knows_current(X1) :- __def_70(X1).
          By induction on X2 satisfying __def_70, must start with cons.
245.2.1.1. knows_current(cons(X1,X2)) :- __def_70(cons(X1,X2)).
            __def_70(cons(X1,X2)) must be by __def_70(cons(X1,X2)) :- __def_71(X1), __def_9(X2).
245.2.1.1.1. knows_current(cons(X1,X2)) :- __def_71(X1), __def_9(X2).
              Infer knows_current(cons(X1,X2)) using knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
245.2.1.1.1.1. knows_current(X1) :- __def_71(X1), __def_9(X2).
                Because the following simpler clause holds:
245.2.1.1.1.1.1. knows_current(X1) :- __def_71(X1).
                  Without any induction hypothesis:
245.2.1.1.1.1.1.1. knows_current(X1) :- __def_71(X1).
                    By induction on X1 satisfying __def_71, must start with enc.
245.2.1.1.1.1.1.1.1. knows_current(enc(X1,X2)) :- __def_71(enc(X1,X2)).
                      __def_71(enc(X1,X2)) must be by __def_71(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
245.2.1.1.1.1.1.1.1.1. knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
                        Infer knows_current(enc(X1,X2)) using knows_current(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
245.2.1.1.1.1.1.1.1.1.1. __def_72(X1) :- __def_72(X1), __def_73(X2).: see 17.1.1.
245.2.1.1.1.1.1.1.1.1.2. __def_73(X2) :- __def_72(X1), __def_73(X2).: see 17.1.2.
245.2.1.1.1.2. knows_current(X2) :- __def_71(X1), __def_9(X2).
                Because the following simpler clause holds:
245.2.1.1.1.2.1. knows_current(X2) :- __def_9(X2).
                  Without any induction hypothesis:
245.2.1.1.1.2.1.1. knows_current(X1) :- __def_9(X1).
                    By induction on X2 satisfying __def_9, must start with nil.
245.2.1.1.1.2.1.1.1. knows_current(nil) :- __def_9(nil).
                      __def_9(nil) must be by __def_9(nil).
245.2.1.1.1.2.1.1.1.1. knows_current(nil).: see 177.3.1.
. lemma 246:246. alice_key_current (X1,X2) :- __def_84 (X1,X3,X2), __def_107 (X4,X1,X3,X2).
      Equivalent to:
246.1. alice_key_current (X1,X2) :- __def_107 (X3,X1,X4,X2), __def_84 (X1,X4,X2).
        __def_107 (X3,X1,X4,X2) must be by __def_107(X1,X2,X3,X4) :- __def_92(X1), agent(X2), knows_current(X2), agent(X3), __def_95(X4).
246.1.1. alice_key_current (X1,X2) :- __def_92(X3), agent(X1), knows_current(X1), agent(X4), __def_95(X2), __def_84 (X1,X4,X2).
          Equivalent to:
246.1.1.1. alice_key_current (X1,X2) :- __def_84 (X1,X3,X2), __def_92(X4), __def_95(X2), agent(X1), agent(X3), knows_current(X1).
            Infer alice_key_current (X1,X2) using alice_key_current(X1,X2) :- agent(X1), __type_1(X1), __def_103(X2), __def_78(X2).
246.1.1.1.1. agent(X1) :- __def_84 (X1,X3,X2), __def_92(X4), __def_95(X2), agent(X1), agent(X3), knows_current(X1).
              Because the following simpler clause holds:
246.1.1.1.1.1. agent(X1) :- agent(X1).: see 3.1.1.1.1.1.1.
246.1.1.1.2. __type_1(X1) :- __def_84 (X1,X3,X2), __def_92(X4), __def_95(X2), agent(X1), agent(X3), knows_current(X1).
              Because the following simpler clause holds:
246.1.1.1.2.1. __type_1(X1) :- agent(X1).: see 6.3.1.1.1.1.1.1.1.1.2.1.
246.1.1.1.3. __def_103(X2) :- __def_84 (X1,X3,X2), __def_92(X4), __def_95(X2), agent(X1), agent(X3), knows_current(X1).
              Because the following simpler clause holds:
246.1.1.1.3.1. __def_103(X1) :- __def_95(X1).
                By induction on X2 satisfying __def_95, must start with r_current.
246.1.1.1.3.1.1. __def_103(r_current(X1,X2)) :- __def_95(r_current(X1,X2)).
                  __def_95(r_current(X1,X2)) must be by __def_95(r_current(X1,X2)) :- knows_current(X1).
246.1.1.1.3.1.1.1. __def_103(r_current(X1,X2)) :- knows_current(X1).
                    Infer __def_103(r_current(X1,X2)) using __def_103(r_current(X1,X2)) :- knows_current(X1).
246.1.1.1.3.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
246.1.1.1.4. __def_78(X2) :- __def_84 (X1,X3,X2), __def_92(X4), __def_95(X2), agent(X1), agent(X3), knows_current(X1).
              Because the following simpler clause holds:
246.1.1.1.4.1. __def_78(X1) :- __def_95(X1).
                By induction on X2 satisfying __def_95, must start with r_current.
246.1.1.1.4.1.1. __def_78(r_current(X1,X2)) :- __def_95(r_current(X1,X2)).
                  __def_95(r_current(X1,X2)) must be by __def_95(r_current(X1,X2)) :- knows_current(X1).
246.1.1.1.4.1.1.1. __def_78(r_current(X1,X2)) :- knows_current(X1).: see 67.1.4.1.1.1.1.1.3.1.1.1.
. lemma 247:247. testable_current(crypt(X1,X2)) :- __def_114(X2), __type_27(X1).
      Infer testable_current(crypt(X1,X2)) using testable_current(crypt(X1,X2)) :- __type_27(X1), __def_114(X2).
247.1. __type_27(X1) :- __def_114(X2), __type_27(X1).
        Because the following simpler clause holds:
247.1.1. __type_27(X1) :- __type_27(X1).: see 82.10.5.1.1.
247.2. __def_114(X2) :- __def_114(X2), __type_27(X1).
        Because the following simpler clause holds:
247.2.1. __def_114(X2) :- __def_114(X2).: see 82.10.5.2.1.
. lemma 248:248. knows_current(X1) :- agent(X1).: see 52.1.1.1.1.1.1.1.2.1.
. lemma 249:249. #false(intruder_knows_session_key_as_seen_by_bob)  :- bob_key_current (bob,X1), knows_current(X1).
      This is implied by:
249.1. #false() :- bob_key_current (bob,X1), knows_current(X1).
        bob_key_current (bob,X1) must be by bob_key_current(X1,X2) :- __type_25(X1), __def_111(X2).
249.1.1. #false() :- __type_25(bob), __def_111(X1), knows_current(X1).
          Equivalent to:
249.1.1.1. #false() :- __def_111(X1), __type_25(bob), knows_current(X1).
            Special case of:
249.1.1.1.1. #false() :- __def_111(X1), knows_current(X1).
              By induction on X1 satisfying __def_111, must start with r_current.
249.1.1.1.1.1. #false() :- __def_111(r_current(X1,X2)), knows_current(r_current(X1,X2)).
                __def_111(r_current(X1,X2)) is impossible.
. lemma 250:250. #false(intruder_knows_session_key_as_seen_by_alice)  :- alice_key_current (alice,X1), knows_current(X1).
      This is implied by:
250.1. #false() :- alice_key_current (alice,X1), knows_current(X1).
        alice_key_current (alice,X1) must be by alice_key_current(X1,X2) :- agent(X1), __type_1(X1), __def_103(X2), __def_78(X2).
250.1.1. #false() :- agent(alice), __type_1(alice), __def_103(X1), __def_78(X1), knows_current(X1).
          Equivalent to:
250.1.1.1. #false() :- __def_103(X1), __def_78(X1), __type_1(alice), agent(alice), knows_current(X1).
            Special case of:
250.1.1.1.1. #false() :- __def_78(X1), knows_current(X1).: see 166.4.1.1.1.11.1.1.
. lemma 251:251. knows_current(crypt(X1,X2)) :- knows_current(X2), knows_current(X1).
      Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
251.1. knows_current(X1) :- knows_current(X2), knows_current(X1).: see 162.1.
251.2. knows_current(X2) :- knows_current(X2), knows_current(X1).: see 181.2.
. lemma 252:252. knows_current(X1) :- knows_current(p(X1)).
      knows_current(p(X1)) must be by knows_current(p(X)) :- knows_current(X).
252.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
. lemma 253:253. knows_old(enc(X1,X2)) :- knows_old(X2), knows_old(X1).
      Infer knows_old(enc(X1,X2)) using knows_old(enc(X1,X2)) :- knows_old(X1), knows_old(X2).
253.1. knows_old(X1) :- knows_old(X2), knows_old(X1).: see 172.1.
253.2. knows_old(X2) :- knows_old(X2), knows_old(X1).: see 172.2.
. lemma 254:254. knows_old(dec(X1,X2)) :- knows_old(X2), knows_old(X1).
      Infer knows_old(dec(X1,X2)) using knows_old(dec(X1,X2)) :- knows_old(X1), knows_old(X2).
254.1. knows_old(X1) :- knows_old(X2), knows_old(X1).: see 172.1.
254.2. knows_old(X2) :- knows_old(X2), knows_old(X1).: see 172.2.
. lemma 255:255. testable_old(s(X1)) :- testable_old(X1).: see 231.1.1.1.1.2.1.
. lemma 256:256. testable_current(X1) :- knows_current(X1).: see 166.3.1.
. lemma 257:257. testable_current(dec(X1,X2)) :- knows_current(X2), testable_current(X1).
      Infer testable_current(dec(X1,X2)) using testable_current(dec(X1,X2)) :- testable_current(X1), knows_current(X2).
257.1. testable_current(X1) :- knows_current(X2), testable_current(X1).: see 154.1.
257.2. knows_current(X2) :- knows_current(X2), testable_current(X1).: see 154.2.
. lemma 258:258. knows_old(enc(X1,X2)) :- __def_16(X2), __def_15(X1).
      Equivalent to:
258.1. knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
        Infer knows_old(enc(X1,X2)) using knows_old(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
258.1.1. __def_15(X1) :- __def_15(X1), __def_16(X2).: see 7.10.1.1.
258.1.2. __def_16(X2) :- __def_15(X1), __def_16(X2).: see 7.10.1.2.
. lemma 259:259. knows_current(crypt(X1,X2)) :- __def_90(X2), __def_89(X1).
      Equivalent to:
259.1. knows_current(crypt(X1,X2)) :- __def_89(X1), __def_90(X2).
        Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
259.1.1. __def_97(X1) :- __def_89(X1), __def_90(X2).
          Because the following simpler clause holds:
259.1.1.1. __def_97(X1) :- __def_89(X1).
            By induction on X1 satisfying __def_89, must start with cons.
259.1.1.1.1. __def_97(cons(X1,X2)) :- __def_89(cons(X1,X2)).
              __def_89(cons(X1,X2)) must be by __def_89(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
259.1.1.1.1.1. __def_97(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
                Infer __def_97(cons(X1,X2)) using __def_97(cons(X1,X2)) :- __type_21(X1), __def_99(X2).
259.1.1.1.1.1.1. __type_21(X1) :- __type_20(X1), __def_91(X2).
                  Because the following simpler clause holds:
259.1.1.1.1.1.1.1. __type_21(X1) :- __type_20(X1).
                    Without any induction hypothesis:
259.1.1.1.1.1.1.1.1. __type_21(X1) :- __type_20(X1).
                      By induction on X1 satisfying __type_20, X1 must start with cons, noncea_current or nonceb_current.
259.1.1.1.1.1.1.1.1.1. __type_21(cons(X1,X2)) :- __type_20(cons(X1,X2)).
                        __type_20(cons(X1,X2)) must be by __type_20(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
259.1.1.1.1.1.1.1.1.1.1. __type_21(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
                          Infer __type_21(cons(X1,X2)) using __type_21(cons(X1,X2)) :- __type_20(X1), __def_91(X2).
259.1.1.1.1.1.1.1.1.1.1.1. __type_20(X1) :- __type_20(X1), __def_91(X2).: see 98.7.1.1.1.1.1.1.1.1.1.1.1.
259.1.1.1.1.1.1.1.1.1.1.2. __def_91(X2) :- __type_20(X1), __def_91(X2).: see 98.7.1.1.1.1.1.1.1.1.1.1.2.
259.1.1.1.1.1.1.1.1.2. __type_21(noncea_current(X1,X2)) :- __type_20(noncea_current(X1,X2)).
                        __type_20(noncea_current(X1,X2)) must be by __type_20(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).
259.1.1.1.1.1.1.1.1.2.1. __type_21(noncea_current(X1,X2)) :- agent(X1), knows_current(X1), agent(X2).: see 99.1.1.1.1.1.
259.1.1.1.1.1.1.1.1.3. __type_21(nonceb_current(X1,X2)) :- __type_20(nonceb_current(X1,X2)).
                        __type_20(nonceb_current(X1,X2)) must be by __type_20(nonceb_current(X1,X2)) :- knows_current(X1).
259.1.1.1.1.1.1.1.1.3.1. __type_21(nonceb_current(X1,X2)) :- knows_current(X1).: see 99.3.1.1.1.1.
259.1.1.1.1.1.2. __def_99(X2) :- __type_20(X1), __def_91(X2).
                  Because the following simpler clause holds:
259.1.1.1.1.1.2.1. __def_99(X2) :- __def_91(X2).
                    Without any induction hypothesis:
259.1.1.1.1.1.2.1.1. __def_99(X1) :- __def_91(X1).
                      By induction on X2 satisfying __def_91, must start with cons.
259.1.1.1.1.1.2.1.1.1. __def_99(cons(X1,X2)) :- __def_91(cons(X1,X2)).
                        __def_91(cons(X1,X2)) must be by __def_91(cons(X1,X2)) :- __def_92(X1), __def_93(X2).
259.1.1.1.1.1.2.1.1.1.1. __def_99(cons(X1,X2)) :- __def_92(X1), __def_93(X2).
                          Infer __def_99(cons(X1,X2)) using __def_99(cons(X1,X2)) :- __def_100(X1), __def_101(X2).
259.1.1.1.1.1.2.1.1.1.1.1. __def_100(X1) :- __def_92(X1), __def_93(X2).
                            Because the following simpler clause holds:
259.1.1.1.1.1.2.1.1.1.1.1.1. __def_100(X1) :- __def_92(X1).
                              Without any induction hypothesis:
259.1.1.1.1.1.2.1.1.1.1.1.1.1. __def_100(X1) :- __def_92(X1).
                                By induction on X1 satisfying __def_92, must start with nonceb_current.
259.1.1.1.1.1.2.1.1.1.1.1.1.1.1. __def_100(nonceb_current(X1,X2)) :- __def_92(nonceb_current(X1,X2)).
                                  __def_92(nonceb_current(X1,X2)) must be by __def_92(nonceb_current(X1,X2)) :- knows_current(X1).
259.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1. __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
                                    Infer __def_100(nonceb_current(X1,X2)) using __def_100(nonceb_current(X1,X2)) :- knows_current(X1).
259.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1. knows_current(X1) :- knows_current(X1).: see 11.1.1.1.1.1.
259.1.1.1.1.1.2.1.1.1.1.2. __def_101(X2) :- __def_92(X1), __def_93(X2).
                            Because the following simpler clause holds:
259.1.1.1.1.1.2.1.1.1.1.2.1. __def_101(X2) :- __def_93(X2).
                              Without any induction hypothesis:
259.1.1.1.1.1.2.1.1.1.1.2.1.1. __def_101(X1) :- __def_93(X1).
                                By induction on X2 satisfying __def_93, must start with nil.
259.1.1.1.1.1.2.1.1.1.1.2.1.1.1. __def_101(nil) :- __def_93(nil).
                                  __def_93(nil) must be by __def_93(nil).
259.1.1.1.1.1.2.1.1.1.1.2.1.1.1.1. __def_101(nil).: see 141.
259.1.2. __def_98(X2) :- __def_89(X1), __def_90(X2).
          Because the following simpler clause holds:
259.1.2.1. __def_98(X1) :- __def_90(X1).
            By induction on X2 satisfying __def_90, must start with key.
259.1.2.1.1. __def_98(key(X1,X2)) :- __def_90(key(X1,X2)).
              __def_90(key(X1,X2)) must be by __def_90(key(X1,X2)) :- __def_94(X1), __def_95(X2).
259.1.2.1.1.1. __def_98(key(X1,X2)) :- __def_94(X1), __def_95(X2).
                Infer __def_98(key(X1,X2)) using __def_98(key(X1,X2)) :- __def_102(X1), __def_103(X2).
259.1.2.1.1.1.1. __def_102(X1) :- __def_94(X1), __def_95(X2).
                  Because the following simpler clause holds:
259.1.2.1.1.1.1.1. __def_102(X1) :- __def_94(X1).
                    Without any induction hypothesis:
259.1.2.1.1.1.1.1.1. __def_102(X1) :- __def_94(X1).
                      By induction on X1 satisfying __def_94, must start with sym.
259.1.2.1.1.1.1.1.1.1. __def_102(sym) :- __def_94(sym).
                        __def_94(sym) must be by __def_94(sym).
259.1.2.1.1.1.1.1.1.1.1. __def_102(sym).: see 47.
259.1.2.1.1.1.2. __def_103(X2) :- __def_94(X1), __def_95(X2).
                  Because the following simpler clause holds:
259.1.2.1.1.1.2.1. __def_103(X2) :- __def_95(X2).
                    Without any induction hypothesis:
259.1.2.1.1.1.2.1.1. __def_103(X2) :- __def_95(X2).: see 246.1.1.1.3.1.
. lemma 260:260. alice_key_old (X1,X2) :- __def_46 (X4,X1,X3,X2), __def_23 (X1,X3,X2).
      Equivalent to:
260.1. alice_key_old (X1,X2) :- __def_23 (X1,X3,X2), __def_46 (X4,X1,X3,X2).
        Infer alice_key_old (X1,X2) using alice_key_old(X1,X2).
. lemma 261:261. knows_current(cons(X1,X2)) :- knows_current(X2), knows_current(X1).
      Infer knows_current(cons(X1,X2)) using knows_current(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
261.1. knows_current(X1) :- knows_current(X2), knows_current(X1).: see 162.1.
261.2. knows_current(X2) :- knows_current(X2), knows_current(X1).: see 181.2.
. lemma 262:262. testable_old(crypt(X1,X2)) :- __def_56(X2), __type_13(X1).
      Infer testable_old(crypt(X1,X2)) using testable_old(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
262.1. __type_12(X1) :- __def_56(X2), __type_13(X1).
        Because the following simpler clause holds:
262.1.1. __type_12(X1) :- __type_13(X1).
          By induction on X1 satisfying __type_13, X1 must start with dec, s, nil, i, p, key, cons, crypt, alice, enc, bob or server.
262.1.1.1. __type_12(dec(X1,X2)) :- __type_13(dec(X1,X2)).
            __type_13(dec(X1,X2)) must be by __type_13(dec(X1,X2)) :- testable_old(X1), knows_old(X2).
262.1.1.1.1. __type_12(dec(X1,X2)) :- testable_old(X1), knows_old(X2).: see 23.1.1.
262.1.1.2. __type_12(s(X1)) :- __type_13(s(X1)).
            __type_13(s(X1)) must be by __type_13(s(X)) :- testable_old(X).
262.1.1.2.1. __type_12(s(X1)) :- testable_old(X1).: see 23.2.1.
262.1.1.3. __type_12(nil) :- __type_13(nil).
            __type_13(nil) must be by __type_13(nil).
262.1.1.3.1. __type_12(nil).: see 23.3.1.
262.1.1.4. __type_12(i) :- __type_13(i).
            __type_13(i) must be by __type_13(i).
262.1.1.4.1. __type_12(i).: see 23.4.1.
262.1.1.5. __type_12(p(X1)) :- __type_13(p(X1)).
            __type_13(p(X1)) must be by __type_13(p(X)) :- testable_old(X).
262.1.1.5.1. __type_12(p(X1)) :- testable_old(X1).: see 23.5.1.
262.1.1.6. __type_12(key(X1,X2)) :- __type_13(key(X1,X2)).
            Examine all ways of building __type_13(key(X1,X2)) in the body.
            The 3 possibilities are:
            __type_13(key(X1,X2)) :- __def_51(X1), agent(X2).
            __type_13(key(X1,X2)) :- __def_61(X1), __type_16(X2).
            __type_13(key(X1,X2)) :- __def_58(X1), __type_14(X2).
262.1.1.6.1. __type_12(key(X1,X2)) :- __def_51(X1), agent(X2).: see 23.6.1.
262.1.1.6.2. __type_12(key(X1,X2)) :- __def_61(X1), __type_16(X2).: see 23.6.2.
262.1.1.6.3. __type_12(key(X1,X2)) :- __def_58(X1), __type_14(X2).: see 23.6.3.
262.1.1.7. __type_12(cons(X1,X2)) :- __type_13(cons(X1,X2)).
            Examine all ways of building __type_13(cons(X1,X2)) in the body.
            The 2 possibilities are:
            __type_13(cons(X1,X2)) :- testable_old(X1).
            __type_13(cons(X1,X2)) :- testable_old(X2).
262.1.1.7.1. __type_12(cons(X1,X2)) :- testable_old(X1).: see 23.7.1.
262.1.1.7.2. __type_12(cons(X1,X2)) :- testable_old(X2).: see 23.7.2.
262.1.1.8. __type_12(crypt(X1,X2)) :- __type_13(crypt(X1,X2)).
            Examine all ways of building __type_13(crypt(X1,X2)) in the body.
            The 6 possibilities are:
            __type_13(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).
            __type_13(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
            __type_13(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
            __type_13(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
            __type_13(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).
            __type_13(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).
262.1.1.8.1. __type_12(crypt(X1,X2)) :- __type_12(X1), __def_54(X2).: see 23.8.1.
262.1.1.8.2. __type_12(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 23.8.2.
262.1.1.8.3. __type_12(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 23.8.3.
262.1.1.8.4. __type_12(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 23.8.4.
262.1.1.8.5. __type_12(crypt(X1,X2)) :- knows_old(X1), knows_old(X2).: see 23.8.5.
262.1.1.8.6. __type_12(crypt(X1,X2)) :- __type_11(X1), __def_52(X2).: see 23.8.6.
262.1.1.9. __type_12(alice) :- __type_13(alice).
            __type_13(alice) must be by __type_13(alice).
262.1.1.9.1. __type_12(alice).: see 23.9.1.
262.1.1.10. __type_12(enc(X1,X2)) :- __type_13(enc(X1,X2)).
             Examine all ways of building __type_13(enc(X1,X2)) in the body.
             The 4 possibilities are:
             __type_13(enc(X1,X2)) :- __def_15(X1), __def_16(X2).
             __type_13(enc(X1,X2)) :- __def_19(X1), __def_20(X2).
             __type_13(enc(X1,X2)) :- __def_10(X1), __def_11(X2).
             __type_13(enc(X1,X2)) :- testable_old(X1), knows_old(X2).
262.1.1.10.1. __type_12(enc(X1,X2)) :- __def_15(X1), __def_16(X2).: see 23.10.1.
262.1.1.10.2. __type_12(enc(X1,X2)) :- __def_19(X1), __def_20(X2).: see 23.10.2.
262.1.1.10.3. __type_12(enc(X1,X2)) :- __def_10(X1), __def_11(X2).: see 23.10.3.
262.1.1.10.4. __type_12(enc(X1,X2)) :- testable_old(X1), knows_old(X2).: see 23.10.4.
262.1.1.11. __type_12(bob) :- __type_13(bob).
             __type_13(bob) must be by __type_13(bob).
262.1.1.11.1. __type_12(bob).: see 23.11.1.
262.1.1.12. __type_12(server) :- __type_13(server).
             __type_13(server) must be by __type_13(server).
262.1.1.12.1. __type_12(server).: see 23.12.1.
262.2. __def_54(X2) :- __def_56(X2), __type_13(X1).
        Because the following simpler clause holds:
262.2.1. __def_54(X1) :- __def_56(X1).
          By induction on X2 satisfying __def_56: none.
. lemma 263:263. testable_current(X1) :- testable_current(p(X1)).
      testable_current(p(X1)) must be by testable_current(p(X)) :- testable_current(X).
263.1. testable_current(X1) :- testable_current(X1).: see 82.1.1.1.1.
. lemma 264:264. agent(alice).: see 18.1.1.1.1.2.1.
. lemma 265:265. bob_key_current (X1,X2) :- __def_109(X2), __type_24(X1).
      Infer bob_key_current (X1,X2) using bob_key_current(X1,X2) :- __type_25(X1), __def_111(X2).
265.1. __type_25(X1) :- __def_109(X2), __type_24(X1).
        Because the following simpler clause holds:
265.1.1. __type_25(X1) :- __type_24(X1).
          By induction on X1 satisfying __type_24, X1 must start with dec, s, nil, nonceb_old, i, p, key, cons, crypt, noncea_old, alice, enc, bob, server or passwd_old.
265.1.1.1. __type_25(dec(X1,X2)) :- __type_24(dec(X1,X2)).
            __type_24(dec(X1,X2)) must be by __type_24(dec(X1,X2)) :- knows_current(X1), knows_current(X2).
265.1.1.1.1. __type_25(dec(X1,X2)) :- knows_current(X1), knows_current(X2).: see 135.1.1.1.
265.1.1.2. __type_25(s(X1)) :- __type_24(s(X1)).
            __type_24(s(X1)) must be by __type_24(s(X)) :- knows_current(X).
265.1.1.2.1. __type_25(s(X1)) :- knows_current(X1).: see 135.1.2.1.
265.1.1.3. __type_25(nil) :- __type_24(nil).
            __type_24(nil) must be by __type_24(nil).
265.1.1.3.1. __type_25(nil).: see 135.1.3.1.
265.1.1.4. __type_25(nonceb_old(X1,X2)) :- __type_24(nonceb_old(X1,X2)).
            __type_24(nonceb_old(X1,X2)) must be by __type_24(nonceb_old(X1,X2)).
265.1.1.4.1. __type_25(nonceb_old(X1,X2)).: see 135.1.4.1.
265.1.1.5. __type_25(i) :- __type_24(i).
            __type_24(i) must be by __type_24(i).
265.1.1.5.1. __type_25(i).: see 135.1.5.1.
265.1.1.6. __type_25(p(X1)) :- __type_24(p(X1)).
            __type_24(p(X1)) must be by __type_24(p(X)) :- knows_current(X).
265.1.1.6.1. __type_25(p(X1)) :- knows_current(X1).: see 135.1.6.1.
265.1.1.7. __type_25(key(X1,X2)) :- __type_24(key(X1,X2)).
            Examine all ways of building __type_24(key(X1,X2)) in the body.
            The 3 possibilities are:
            __type_24(key(X1,X2)) :- __def_51(X1), agent(X2).
            __type_24(key(X1,X2)) :- __def_62(X1), __def_63(X2).
            __type_24(key(X1,X2)) :- __def_12(X1), __def_13(X2).
265.1.1.7.1. __type_25(key(X1,X2)) :- __def_51(X1), agent(X2).: see 135.1.7.1.
265.1.1.7.2. __type_25(key(X1,X2)) :- __def_62(X1), __def_63(X2).: see 135.1.7.2.
265.1.1.7.3. __type_25(key(X1,X2)) :- __def_12(X1), __def_13(X2).: see 135.1.7.3.
265.1.1.8. __type_25(cons(X1,X2)) :- __type_24(cons(X1,X2)).
            __type_24(cons(X1,X2)) must be by __type_24(cons(X1,X2)) :- knows_current(X1), knows_current(X2).
265.1.1.8.1. __type_25(cons(X1,X2)) :- knows_current(X1), knows_current(X2).: see 135.1.8.1.
265.1.1.9. __type_25(crypt(X1,X2)) :- __type_24(crypt(X1,X2)).
            Examine all ways of building __type_24(crypt(X1,X2)) in the body.
            The 9 possibilities are:
            __type_24(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
            __type_24(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
            __type_24(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).
            __type_24(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).
            __type_24(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).
            __type_24(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).
            __type_24(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).
            __type_24(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).
            __type_24(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).
265.1.1.9.1. __type_25(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).: see 135.1.9.1.
265.1.1.9.2. __type_25(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).: see 135.1.9.2.
265.1.1.9.3. __type_25(crypt(X1,X2)) :- __def_85(X1), __def_86(X2).: see 135.1.9.3.
265.1.1.9.4. __type_25(crypt(X1,X2)) :- __def_21(X1), __def_22(X2).: see 135.1.9.4.
265.1.1.9.5. __type_25(crypt(X1,X2)) :- __def_17(X1), __type_2(X2).: see 135.1.9.5.
265.1.1.9.6. __type_25(crypt(X1,X2)) :- __def_24(X1), __def_25(X2).: see 135.1.9.6.
265.1.1.9.7. __type_25(crypt(X1,X2)) :- __type_7(X1), __def_44(X2).: see 135.1.9.7.
265.1.1.9.8. __type_25(crypt(X1,X2)) :- __def_97(X1), __def_98(X2).: see 135.1.9.8.
265.1.1.9.9. __type_25(crypt(X1,X2)) :- knows_current(X1), knows_current(X2).: see 135.1.9.9.
265.1.1.10. __type_25(noncea_old(X1,X2)) :- __type_24(noncea_old(X1,X2)).
             __type_24(noncea_old(X1,X2)) must be by __type_24(noncea_old(X1,X2)).
265.1.1.10.1. __type_25(noncea_old(X1,X2)).: see 135.1.10.1.
265.1.1.11. __type_25(alice) :- __type_24(alice).
             __type_24(alice) must be by __type_24(alice).
265.1.1.11.1. __type_25(alice).: see 135.1.11.1.
265.1.1.12. __type_25(enc(X1,X2)) :- __type_24(enc(X1,X2)).
             Examine all ways of building __type_24(enc(X1,X2)) in the body.
             The 4 possibilities are:
             __type_24(enc(X1,X2)) :- __def_72(X1), __def_73(X2).
             __type_24(enc(X1,X2)) :- __def_80(X1), __def_81(X2).
             __type_24(enc(X1,X2)) :- knows_current(X1), knows_current(X2).
             __type_24(enc(X1,X2)) :- __def_76(X1), __def_77(X2).
265.1.1.12.1. __type_25(enc(X1,X2)) :- __def_72(X1), __def_73(X2).: see 135.1.12.1.
265.1.1.12.2. __type_25(enc(X1,X2)) :- __def_80(X1), __def_81(X2).: see 135.1.12.2.
265.1.1.12.3. __type_25(enc(X1,X2)) :- knows_current(X1), knows_current(X2).: see 135.1.12.3.
265.1.1.12.4. __type_25(enc(X1,X2)) :- __def_76(X1), __def_77(X2).: see 135.1.12.4.
265.1.1.13. __type_25(bob) :- __type_24(bob).
             __type_24(bob) must be by __type_24(bob).
265.1.1.13.1. __type_25(bob).: see 135.1.13.1.
265.1.1.14. __type_25(server) :- __type_24(server).
             __type_24(server) must be by __type_24(server).
265.1.1.14.1. __type_25(server).: see 135.1.14.1.
265.1.1.15. __type_25(passwd_old(X1,X2)) :- __type_24(passwd_old(X1,X2)).
             __type_24(passwd_old(X1,X2)) must be by __type_24(passwd_old(X1,X2)).
265.1.1.15.1. __type_25(passwd_old(X1,X2)).: see 135.1.15.1.
265.2. __def_111(X2) :- __def_109(X2), __type_24(X1).
        Because the following simpler clause holds:
265.2.1. __def_111(X1) :- __def_109(X1).
          By induction on X2 satisfying __def_109, must start with r_current.
265.2.1.1. __def_111(r_current(X1,X2)) :- __def_109(r_current(X1,X2)).
            __def_109(r_current(X1,X2)) must be by __def_109(r_current(X1,X2)) :- knows_current(X1).
265.2.1.1.1. __def_111(r_current(X1,X2)) :- knows_current(X1).: see 19.1.
. lemma 266:266. bob_key_current (X1,X2) :- __def_111(X2), __type_25(X1).
      Infer bob_key_current (X1,X2) using bob_key_current(X1,X2) :- __type_25(X1), __def_111(X2).
266.1. __type_25(X1) :- __def_111(X2), __type_25(X1).
        Because the following simpler clause holds:
266.1.1. __type_25(X1) :- __type_25(X1). is a tautology.
266.2. __def_111(X2) :- __def_111(X2), __type_25(X1).
        Because the following simpler clause holds:
266.2.1. __def_111(X2) :- __def_111(X2). is a tautology.
. lemma 267:267. knows_old(X1) :- __def_5 (X1,X2), __def_6(X2).
      Special case of:
267.1. #false() :- __def_6(X1).: see 84.1.1.1.1.1.
. lemma 268:268. testable_current(cons(X1,X2)) :- testable_current(X2).: see 195.1.5.1.1.9.2.
. lemma 269:269. knows_current(crypt(X1,X2)) :- __def_105(X2), __type_22(X1).
      Infer knows_current(crypt(X1,X2)) using knows_current(crypt(X1,X2)) :- __type_22(X1), __def_105(X2).
269.1. __type_22(X1) :- __def_105(X2), __type_22(X1).
        Because the following simpler clause holds:
269.1.1. __type_22(X1) :- __type_22(X1).: see 44.1.1.9.1.1.1.
269.2. __def_105(X2) :- __def_105(X2), __type_22(X1).
        Because the following simpler clause holds:
269.2.1. __def_105(X2) :- __def_105(X2).: see 44.1.1.9.1.2.1.
. lemma 270:270. knows_old(crypt(X1,X2)) :- __def_37(X2), __def_36(X1).
      Equivalent to:
270.1. knows_old(crypt(X1,X2)) :- __def_36(X1), __def_37(X2).
        Infer knows_old(crypt(X1,X2)) using knows_old(crypt(X1,X2)) :- __def_28(X1), __def_29(X2).
270.1.1. __def_28(X1) :- __def_36(X1), __def_37(X2).
          Because the following simpler clause holds:
270.1.1.1. __def_28(X1) :- __def_36(X1).
            By induction on X1 satisfying __def_36, must start with cons.
270.1.1.1.1. __def_28(cons(X1,X2)) :- __def_36(cons(X1,X2)).
              __def_36(cons(X1,X2)) must be by __def_36(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
270.1.1.1.1.1. __def_28(cons(X1,X2)) :- __type_6(X1), __def_38(X2).
                Infer __def_28(cons(X1,X2)) using __def_28(cons(X1,X2)) :- __type_5(X1), __def_30(X2).
270.1.1.1.1.1.1. __type_5(X1) :- __type_6(X1), __def_38(X2).: see 28.1.1.1.1.1.1.
270.1.1.1.1.1.2. __def_30(X2) :- __type_6(X1), __def_38(X2).: see 28.1.1.1.1.1.2.
270.1.2. __def_29(X2) :- __def_36(X1), __def_37(X2).
          Because the following simpler clause holds:
270.1.2.1. __def_29(X1) :- __def_37(X1).
            By induction on X2 satisfying __def_37, must start with key.
270.1.2.1.1. __def_29(key(X1,X2)) :- __def_37(key(X1,X2)).
              __def_37(key(X1,X2)) must be by __def_37(key(X1,X2)) :- __def_41(X1), __def_42(X2).
270.1.2.1.1.1. __def_29(key(X1,X2)) :- __def_41(X1), __def_42(X2).
                Infer __def_29(key(X1,X2)) using __def_29(key(X1,X2)) :- __def_33(X1), __def_34(X2).
270.1.2.1.1.1.1. __def_33(X1) :- __def_41(X1), __def_42(X2).
                  Because the following simpler clause holds:
270.1.2.1.1.1.1.1. __def_33(X1) :- __def_41(X1).
                    Without any induction hypothesis:
270.1.2.1.1.1.1.1.1. __def_33(X1) :- __def_41(X1).
                      By induction on X1 satisfying __def_41, must start with sym.
270.1.2.1.1.1.1.1.1.1. __def_33(sym) :- __def_41(sym).
                        __def_41(sym) must be by __def_41(sym).
270.1.2.1.1.1.1.1.1.1.1. __def_33(sym).: see 2.
270.1.2.1.1.1.2. __def_34(X2) :- __def_41(X1), __def_42(X2).
                  Because the following simpler clause holds:
270.1.2.1.1.1.2.1. __def_34(X2) :- __def_42(X2).
                    Without any induction hypothesis:
270.1.2.1.1.1.2.1.1. __def_34(X1) :- __def_42(X1).
                      By induction on X2 satisfying __def_42, must start with r_old.
270.1.2.1.1.1.2.1.1.1. __def_34(r_old(X1,X2)) :- __def_42(r_old(X1,X2)).
                        __def_42(r_old(X1,X2)) must be by __def_42(r_old(X1,X2)) :- knows_old(X1).
270.1.2.1.1.1.2.1.1.1.1. __def_34(r_old(X1,X2)) :- knows_old(X1).
                          Infer __def_34(r_old(X1,X2)) using __def_34(r_old(X1,X2)) :- knows_old(X1).
270.1.2.1.1.1.2.1.1.1.1.1. knows_old(X1) :- knows_old(X1).: see 5.1.1.1.1.1.1.1.1.
. [intruder_knows_session_key_as_seen_by_bob] #false(intruder_knows_session_key_as_seen_by_bob)  :- bob_key_current (bob,K), knows_current(K).
  Assume bob_key_current (bob,$K). knows_current($K).
  Show  #false(intruder_knows_session_key_as_seen_by_bob) .
  using lemma 249 #false(intruder_knows_session_key_as_seen_by_bob)  :- bob_key_current (bob,X1), knows_current(X1).
   {X1=$K}
1. bob_key_current (bob,$K) by assumption.
2. knows_current($K) by assumption.
. [intruder_knows_session_key_as_seen_by_alice] #false(intruder_knows_session_key_as_seen_by_alice)  :- alice_key_current (alice,K), knows_current(K).
  Assume alice_key_current (alice,$K). knows_current($K).
  Show  #false(intruder_knows_session_key_as_seen_by_alice) .
  using lemma 250 #false(intruder_knows_session_key_as_seen_by_alice)  :- alice_key_current (alice,X1), knows_current(X1).
   {X1=$K}
1. alice_key_current (alice,$K) by assumption.
2. knows_current($K) by assumption.
. [intruder_knows_own_private_key_current] knows_current(key(prv,i)).
  Show  knows_current(key(prv,i)).
  using lemma 165 knows_current(key(X1,X2)) :- __def_63(X2), __def_62(X1).
   {X2=i,X1=prv}
1. __def_63(i) by lemma 39.
2. __def_62(prv) by lemma 64.
. [testable_dec_key_dec_current] testable_current(X) :- knows_current(enc(M,X)), testable_current(M).
  Assume knows_current(enc($M,$X)). testable_current($M).
  Show  testable_current($X).
  using lemma 166 testable_current(X1) :- knows_current(enc(X2,X1)), testable_current(X2).
   {X2=$M,X1=$X}
1. knows_current(enc($M,$X)) by assumption.
2. testable_current($M) by assumption.
. [testable_dec_key_current] testable_current(X) :- knows_current(M), testable_current(dec(M,X)).
  Assume knows_current($M). testable_current(dec($M,$X)).
  Show  testable_current($X).
  using lemma 185 testable_current(X1) :- testable_current(dec(X2,X1)), knows_current(X2).
   {X2=$M,X1=$X}
1. testable_current(dec($M,$X)) by assumption.
2. knows_current($M) by assumption.
. [testable_enc_key_dec_current] testable_current(X) :- knows_current(dec(M,X)), testable_current(M).
  Assume knows_current(dec($M,$X)). testable_current($M).
  Show  testable_current($X).
  using lemma 243 testable_current(X1) :- knows_current(dec(X2,X1)), testable_current(X2).
   {X2=$M,X1=$X}
1. knows_current(dec($M,$X)) by assumption.
2. testable_current($M) by assumption.
. [testable_enc_key_current] testable_current(X) :- knows_current(M), testable_current(enc(M,X)).
  Assume knows_current($M). testable_current(enc($M,$X)).
  Show  testable_current($X).
  using lemma 234 testable_current(X1) :- testable_current(enc(X2,X1)), knows_current(X2).
   {X2=$M,X1=$X}
1. testable_current(enc($M,$X)) by assumption.
2. knows_current($M) by assumption.
. [testable_enc_dec_current] testable_current(dec(M,K)) :- knows_current(K), testable_current(M).
  Assume knows_current($K). testable_current($M).
  Show  testable_current(dec($M,$K)).
  using lemma 257 testable_current(dec(X1,X2)) :- knows_current(X2), testable_current(X1).
   {X2=$K,X1=$M}
1. knows_current($K) by assumption.
2. testable_current($M) by assumption.
. [testable_enc_current] testable_current(M) :- knows_current(K), testable_current(enc(M,K)).
  Assume knows_current($K). testable_current(enc($M,$K)).
  Show  testable_current($M).
  using lemma 218 testable_current(X1) :- testable_current(enc(X1,X2)), knows_current(X2).
   {X2=$K,X1=$M}
1. testable_current(enc($M,$K)) by assumption.
2. knows_current($K) by assumption.
. [testable_dec_dec_current] testable_current(M) :- knows_current(K), testable_current(dec(M,K)).
  Assume knows_current($K). testable_current(dec($M,$K)).
  Show  testable_current($M).
  using lemma 237 testable_current(X1) :- testable_current(dec(X1,X2)), knows_current(X2).
   {X2=$K,X1=$M}
1. testable_current(dec($M,$K)) by assumption.
2. knows_current($K) by assumption.
. [testable_dec_current] testable_current(enc(M,K)) :- knows_current(K), testable_current(M).
  Assume knows_current($K). testable_current($M).
  Show  testable_current(enc($M,$K)).
  using lemma 154 testable_current(enc(X1,X2)) :- knows_current(X2), testable_current(X1).
   {X2=$K,X1=$M}
1. knows_current($K) by assumption.
2. testable_current($M) by assumption.
. [testable_encrypt_key_current] testable_current(X) :- knows_current(M), testable_current(crypt(M,X)).
  Assume knows_current($M). testable_current(crypt($M,$X)).
  Show  testable_current($X).
  using lemma 205 testable_current(X1) :- testable_current(crypt(X2,X1)), knows_current(X2).
   {X2=$M,X1=$X}
1. testable_current(crypt($M,$X)) by assumption.
2. knows_current($M) by assumption.
. [testable_decrypt_key_symmetric_key_current] testable_current(key(sym,K)) :- knows_current(crypt(M,key(sym,K))), testable_current(M).
  Assume knows_current(crypt($M,key(sym,$K))). testable_current($M).
  Show  testable_current(key(sym,$K)).
  using lemma 175 testable_current(key(X1,X2)) :- __type_31(X2), __def_121(X1).
   {X2=$K,X1=sym}
1. __type_31($K).
    using lemma 62 __type_31(X1) :- __def_120 (X1,X2), testable_current(X2).
     {X2=$M,X1=$K}
1.1. __def_120 ($K,$M).
      using lemma 59 __def_120 (X1,X2) :- knows_current(crypt(X2,key(sym,X1))).
       {X2=$M,X1=$K}
1.1.1. knows_current(crypt($M,key(sym,$K))) by assumption.
1.2. testable_current($M) by assumption.
2. __def_121(sym) by lemma 1.
. [testable_decrypt_key_public_key_current] testable_current(key(pub,K)) :- knows_current(crypt(M,key(prv,K))), testable_current(M).
  Assume knows_current(crypt($M,key(prv,$K))). testable_current($M).
  Show  testable_current(key(pub,$K)).
  using lemma 216 testable_current(key(X1,X2)) :- __type_30(X2), __def_119(X1).
   {X2=$K,X1=pub}
1. __type_30($K).
    using lemma 101 __type_30(X1) :- __def_66 (X1,X2), testable_current(X2).
     {X2=$M,X1=$K}
1.1. __def_66 ($K,$M).
      using lemma 116 __def_66 (X1,X2) :- knows_current(crypt(X2,key(prv,X1))).
       {X2=$M,X1=$K}
1.1.1. knows_current(crypt($M,key(prv,$K))) by assumption.
1.2. testable_current($M) by assumption.
2. __def_119(pub) by lemma 136.
. [testable_decrypt_key_private_key_current] testable_current(key(prv,K)) :- knows_current(crypt(M,key(pub,K))), testable_current(M).
  Assume knows_current(crypt($M,key(pub,$K))). testable_current($M).
  Show  testable_current(key(prv,$K)).
  using lemma 190 testable_current(key(X1,X2)) :- __type_29(X2), __def_118(X1).
   {X2=$K,X1=prv}
1. __type_29($K).
    using lemma 3 __type_29(X1) :- __def_64 (X1,X2), testable_current(X2).
     {X2=$M,X1=$K}
1.1. __def_64 ($K,$M).
      using lemma 124 __def_64 (X1,X2) :- knows_current(crypt(X2,key(pub,X1))).
       {X2=$M,X1=$K}
1.1.1. knows_current(crypt($M,key(pub,$K))) by assumption.
1.2. testable_current($M) by assumption.
2. __def_118(prv) by lemma 83.
. [testable_encrypt_current] testable_current(M) :- knows_current(K), testable_current(crypt(M,K)).
  Assume knows_current($K). testable_current(crypt($M,$K)).
  Show  testable_current($M).
  using lemma 195 testable_current(X1) :- testable_current(crypt(X1,X2)), knows_current(X2).
   {X2=$K,X1=$M}
1. testable_current(crypt($M,$K)) by assumption.
2. knows_current($K) by assumption.
. [testable_decrypt_symmetric_key_current] testable_current(crypt(M,key(sym,X))) :- knows_current(key(sym,X)), testable_current(M).
  Assume knows_current(key(sym,$X)). testable_current($M).
  Show  testable_current(crypt($M,key(sym,$X))).
  using lemma 182 testable_current(crypt(X1,X2)) :- __def_116(X2), __type_28(X1).
   {X2=key(sym,$X),X1=$M}
1. __def_116(key(sym,$X)).
    using lemma 140 __def_116(key(X1,X2)) :- __def_69(X2), __def_117(X1).
     {X2=$X,X1=sym}
1.1. __def_69($X).
      using lemma 79 __def_69(X1) :- knows_current(key(sym,X1)).
       {X1=$X}
1.1.1. knows_current(key(sym,$X)) by assumption.
1.2. __def_117(sym) by lemma 142.
2. __type_28($M).
    using lemma 114 __type_28(X1) :- testable_current(X1).
     {X1=$M}
2.1. testable_current($M) by assumption.
. [testable_decrypt_public_key_current] testable_current(crypt(M,key(prv,K))) :- knows_current(key(pub,K)), testable_current(M).
  Assume knows_current(key(pub,$K)). testable_current($M).
  Show  testable_current(crypt($M,key(prv,$K))).
  using lemma 247 testable_current(crypt(X1,X2)) :- __def_114(X2), __type_27(X1).
   {X2=key(prv,$K),X1=$M}
1. __def_114(key(prv,$K)).
    using lemma 127 __def_114(key(X1,X2)) :- __def_67(X2), __def_115(X1).
     {X2=$K,X1=prv}
1.1. __def_67($K).
      using lemma 109 __def_67(X1) :- knows_current(key(pub,X1)).
       {X1=$K}
1.1.1. knows_current(key(pub,$K)) by assumption.
1.2. __def_115(prv) by lemma 105.
2. __type_27($M).
    using lemma 102 __type_27(X1) :- testable_current(X1).
     {X1=$M}
2.1. testable_current($M) by assumption.
. [testable_decrypt_private_key_current] testable_current(crypt(M,key(pub,K))) :- knows_current(key(prv,K)), testable_current(M).
  Assume knows_current(key(prv,$K)). testable_current($M).
  Show  testable_current(crypt($M,key(pub,$K))).
  using lemma 191 testable_current(crypt(X1,X2)) :- __def_112(X2), __type_26(X1).
   {X2=key(pub,$K),X1=$M}
1. __def_112(key(pub,$K)).
    using lemma 120 __def_112(key(X1,X2)) :- __def_65(X2), __def_113(X1).
     {X2=$K,X1=pub}
1.1. __def_65($K).
      using lemma 133 __def_65(X1) :- knows_current(key(prv,X1)).
       {X1=$K}
1.1.1. knows_current(key(prv,$K)) by assumption.
1.2. __def_113(pub) by lemma 93.
2. __type_26($M).
    using lemma 82 __type_26(X1) :- testable_current(X1).
     {X1=$M}
2.1. testable_current($M) by assumption.
. [testable_succ_pred_current] testable_current(p(M)) :- testable_current(M).
  Assume testable_current($M).
  Show  testable_current(p($M)).
  using lemma 188 testable_current(p(X1)) :- testable_current(X1).
   {X1=$M}
1. testable_current($M) by assumption.
. [testable_succ_current] testable_current(M) :- testable_current(s(M)).
  Assume testable_current(s($M)).
  Show  testable_current($M).
  using lemma 163 testable_current(X1) :- testable_current(s(X1)).
   {X1=$M}
1. testable_current(s($M)) by assumption.
. [testable_pred_pred_current] testable_current(M) :- testable_current(p(M)).
  Assume testable_current(p($M)).
  Show  testable_current($M).
  using lemma 263 testable_current(X1) :- testable_current(p(X1)).
   {X1=$M}
1. testable_current(p($M)) by assumption.
. [testable_pred_current] testable_current(s(M)) :- testable_current(M).
  Assume testable_current($M).
  Show  testable_current(s($M)).
  using lemma 215 testable_current(s(X1)) :- testable_current(X1).
   {X1=$M}
1. testable_current($M) by assumption.
. [second_testable_current] testable_current(cons(M,L)) :- testable_current(L).
  Assume testable_current($L).
  Show  testable_current(cons($M,$L)).
  using lemma 268 testable_current(cons(X1,X2)) :- testable_current(X2).
   {X2=$L,X1=$M}
1. testable_current($L) by assumption.
. [first_testable_current] testable_current(cons(M,L)) :- testable_current(M).
  Assume testable_current($M).
  Show  testable_current(cons($M,$L)).
  using lemma 186 testable_current(cons(X1,X2)) :- testable_current(X1).
   {X2=$L,X1=$M}
1. testable_current($M) by assumption.
. [known_implies_testable_current] testable_current(M) :- knows_current(M).
  Assume knows_current($M).
  Show  testable_current($M).
  using lemma 256 testable_current(X1) :- knows_current(X1).
   {X1=$M}
1. knows_current($M) by assumption.
. [intruder_weak_secret_dec_dec_current] knows_current(P) :- testable_current(M), testable_current(dec(M,P)).
  Assume testable_current($M). testable_current(dec($M,$P)).
  Show  knows_current($P).
  using lemma 171 knows_current(X1) :- testable_current(dec(X2,X1)), testable_current(X2).
   {X2=$M,X1=$P}
1. testable_current(dec($M,$P)) by assumption.
2. testable_current($M) by assumption.
. [intruder_weak_secret_dec_current] knows_current(P) :- testable_current(enc(M,P)), testable_current(M).
  Assume testable_current(enc($M,$P)). testable_current($M).
  Show  knows_current($P).
  using lemma 209 knows_current(X1) :- testable_current(enc(X2,X1)), testable_current(X2).
   {X2=$M,X1=$P}
1. testable_current(enc($M,$P)) by assumption.
2. testable_current($M) by assumption.
. [intruder_knows_agents_public_key_current] knows_current(key(pub,X)) :- agent(X).
  Assume agent($X).
  Show  knows_current(key(pub,$X)).
  using lemma 180 knows_current(key(X1,X2)) :- agent(X2), __def_51(X1).
   {X2=$X,X1=pub}
1. agent($X) by assumption.
2. __def_51(pub) by lemma 143.
. [intruder_knows_all_agents_current] knows_current(X) :- agent(X).
  Assume agent($X).
  Show  knows_current($X).
  using lemma 248 knows_current(X1) :- agent(X1).
   {X1=$X}
1. agent($X) by assumption.
. [define_bob_key_dec_current] bob_key_current (A,r_current(A,B)) :- knows_current(crypt(nonceb_current(A,B),key(sym,r_current(A,B)))), knows_current(crypt(Na,key(sym,r_current(A,B)))), knows_current(cons(A,cons(M,nil))).
  Assume knows_current(crypt(nonceb_current($A,$B),key(sym,r_current($A,$B)))). knows_current(crypt($Na,key(sym,r_current($A,$B)))). knows_current(cons($A,cons($M,nil))).
  Show  bob_key_current ($A,r_current($A,$B)).
  using lemma 266 bob_key_current (X1,X2) :- __def_111(X2), __type_25(X1).
   {X2=r_current($A,$B),X1=$A}
1. __def_111(r_current($A,$B)).
    using lemma 19 __def_111(r_current(X1,X2)) :- __def_110 (X1,X2).
     {X2=$B,X1=$A}
1.1. __def_110 ($A,$B).
      using lemma 13 __def_110 (X1,X2) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(X4,nil))).
       {X3=$Na,X2=$B,X4=$M,X1=$A}
1.1.1. knows_current(crypt(nonceb_current($A,$B),key(sym,r_current($A,$B)))) by assumption.
1.1.2. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
1.1.3. knows_current(cons($A,cons($M,nil))) by assumption.
2. __type_25($A).
    using lemma 135 __type_25(X1) :- __def_110 (X1,X2).
     {X2=$B,X1=$A}
2.1. __def_110 ($A,$B).
      using lemma 13 __def_110 (X1,X2) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(X4,nil))).
       {X3=$Na,X2=$B,X4=$M,X1=$A}
2.1.1. knows_current(crypt(nonceb_current($A,$B),key(sym,r_current($A,$B)))) by assumption.
2.1.2. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
2.1.3. knows_current(cons($A,cons($M,nil))) by assumption.
. [define_bob_key_current] bob_key_current (A,r_current(A,B)) :- knows_current(crypt(nonceb_current(A,B),key(sym,r_current(A,B)))), knows_current(crypt(Na,key(sym,r_current(A,B)))), knows_current(cons(A,cons(enc(Ka,passwd_current(A,B)),nil))).
  Assume knows_current(crypt(nonceb_current($A,$B),key(sym,r_current($A,$B)))). knows_current(crypt($Na,key(sym,r_current($A,$B)))). knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))).
  Show  bob_key_current ($A,r_current($A,$B)).
  using lemma 265 bob_key_current (X1,X2) :- __def_109(X2), __type_24(X1).
   {X2=r_current($A,$B),X1=$A}
1. __def_109(r_current($A,$B)).
    using lemma 22 __def_109(r_current(X1,X2)) :- __def_108 (X1,X2).
     {X2=$B,X1=$A}
1.1. __def_108 ($A,$B).
      using lemma 73 __def_108 (X1,X2) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).
       {X3=$Na,X2=$B,X4=$Ka,X1=$A}
1.1.1. knows_current(crypt(nonceb_current($A,$B),key(sym,r_current($A,$B)))) by assumption.
1.1.2. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
1.1.3. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
2. __type_24($A).
    using lemma 129 __type_24(X1) :- __def_108 (X1,X2).
     {X2=$B,X1=$A}
2.1. __def_108 ($A,$B).
      using lemma 73 __def_108 (X1,X2) :- knows_current(crypt(nonceb_current(X1,X2),key(sym,r_current(X1,X2)))), knows_current(crypt(X3,key(sym,r_current(X1,X2)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X2)),nil))).
       {X3=$Na,X2=$B,X4=$Ka,X1=$A}
2.1.1. knows_current(crypt(nonceb_current($A,$B),key(sym,r_current($A,$B)))) by assumption.
2.1.2. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
2.1.3. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
. [define_alice_key_current] alice_key_current (A,R) :- knows_current(crypt(cons(noncea_current(A,B),cons(Nb,nil)),key(sym,R))), knows_current(enc(crypt(R,key(pub,session_current(A,B))),passwd_current(A,B))).
  Assume knows_current(crypt(cons(noncea_current($A,$B),cons($Nb,nil)),key(sym,$R))). knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))).
  Show  alice_key_current ($A,$R).
  using lemma 246 alice_key_current (X1,X2) :- __def_84 (X1,X3,X2), __def_107 (X4,X1,X3,X2).
   {X3=$B,X2=$R,X4=$Nb,X1=$A}
1. __def_84 ($A,$B,$R).
    using lemma 6 __def_84 (X1,X2,X3) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))).
     {X3=$R,X2=$B,X1=$A}
1.1. knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))) by assumption.
2. __def_107 ($Nb,$A,$B,$R).
    using lemma 41 __def_107 (X1,X2,X3,X4) :- knows_current(crypt(cons(noncea_current(X2,X3),cons(X1,nil)),key(sym,X4))).
     {X3=$B,X2=$A,X4=$R,X1=$Nb}
2.1. knows_current(crypt(cons(noncea_current($A,$B),cons($Nb,nil)),key(sym,$R))) by assumption.
. [message5_current] knows_current(crypt(Nb,key(sym,R))) :- knows_current(crypt(cons(noncea_current(A,B),cons(Nb,nil)),key(sym,R))), knows_current(enc(crypt(R,key(pub,session_current(A,B))),passwd_current(A,B))).
  Assume knows_current(crypt(cons(noncea_current($A,$B),cons($Nb,nil)),key(sym,$R))). knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))).
  Show  knows_current(crypt($Nb,key(sym,$R))).
  using lemma 269 knows_current(crypt(X1,X2)) :- __def_105(X2), __type_22(X1).
   {X2=key(sym,$R),X1=$Nb}
1. __def_105(key(sym,$R)).
    using lemma 132 __def_105(key(X1,X2)) :- __type_23(X2), __def_106(X1).
     {X2=$R,X1=sym}
1.1. __type_23($R).
      using lemma 144 __type_23(X1) :- __def_104 (X2,X1).
       {X2=$Nb,X1=$R}
1.1.1. __def_104 ($Nb,$R).
        using lemma 67 __def_104 (X1,X2) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))).
         {X3=$A,X2=$R,X4=$B,X1=$Nb}
1.1.1.1. knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))) by assumption.
1.1.1.2. knows_current(crypt(cons(noncea_current($A,$B),cons($Nb,nil)),key(sym,$R))) by assumption.
1.2. __def_106(sym) by lemma 146.
2. __type_22($Nb).
    using lemma 11 __type_22(X1) :- __def_104 (X1,X2).
     {X2=$R,X1=$Nb}
2.1. __def_104 ($Nb,$R).
      using lemma 67 __def_104 (X1,X2) :- knows_current(enc(crypt(X2,key(pub,session_current(X3,X4))),passwd_current(X3,X4))), knows_current(crypt(cons(noncea_current(X3,X4),cons(X1,nil)),key(sym,X2))).
       {X3=$A,X2=$R,X4=$B,X1=$Nb}
2.1.1. knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))) by assumption.
2.1.2. knows_current(crypt(cons(noncea_current($A,$B),cons($Nb,nil)),key(sym,$R))) by assumption.
. [message4_dec_current] knows_current(crypt(cons(Na,cons(nonceb_current(A,B),nil)),key(sym,r_current(A,B)))) :- knows_current(crypt(Na,key(sym,r_current(A,B)))), knows_current(cons(A,cons(M,nil))).
  Assume knows_current(crypt($Na,key(sym,r_current($A,$B)))). knows_current(cons($A,cons($M,nil))).
  Show  knows_current(crypt(cons($Na,cons(nonceb_current($A,$B),nil)),key(sym,r_current($A,$B)))).
  using lemma 155 knows_current(crypt(X1,X2)) :- __def_98(X2), __def_97(X1).
   {X2=key(sym,r_current($A,$B)),X1=cons($Na,cons(nonceb_current($A,$B),nil))}
1. __def_98(key(sym,r_current($A,$B))).
    using lemma 134 __def_98(key(X1,X2)) :- __def_103(X2), __def_102(X1).
     {X2=r_current($A,$B),X1=sym}
1.1. __def_103(r_current($A,$B)).
      using lemma 16 __def_103(r_current(X1,X2)) :- __def_96 (X1,X3,X2).
       {X3=$Na,X2=$B,X1=$A}
1.1.1. __def_96 ($A,$Na,$B).
        using lemma 49 __def_96 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).
         {X3=$B,X2=$Na,X4=$M,X1=$A}
1.1.1.1. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
1.1.1.2. knows_current(cons($A,cons($M,nil))) by assumption.
1.2. __def_102(sym) by lemma 47.
2. __def_97(cons($Na,cons(nonceb_current($A,$B),nil))).
    using lemma 112 __def_97(cons(X1,X2)) :- __def_99(X2), __type_21(X1).
     {X2=cons(nonceb_current($A,$B),nil),X1=$Na}
2.1. __def_99(cons(nonceb_current($A,$B),nil)).
      using lemma 75 __def_99(cons(X1,X2)) :- __def_101(X2), __def_100(X1).
       {X2=nil,X1=nonceb_current($A,$B)}
2.1.1. __def_101(nil) by lemma 141.
2.1.2. __def_100(nonceb_current($A,$B)).
        using lemma 139 __def_100(nonceb_current(X1,X2)) :- __def_96 (X1,X3,X2).
         {X3=$Na,X2=$B,X1=$A}
2.1.2.1. __def_96 ($A,$Na,$B).
          using lemma 49 __def_96 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).
           {X3=$B,X2=$Na,X4=$M,X1=$A}
2.1.2.1.1. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
2.1.2.1.2. knows_current(cons($A,cons($M,nil))) by assumption.
2.2. __type_21($Na).
      using lemma 99 __type_21(X1) :- __def_96 (X2,X1,X3).
       {X3=$B,X2=$A,X1=$Na}
2.2.1. __def_96 ($A,$Na,$B).
        using lemma 49 __def_96 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(X4,nil))).
         {X3=$B,X2=$Na,X4=$M,X1=$A}
2.2.1.1. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
2.2.1.2. knows_current(cons($A,cons($M,nil))) by assumption.
. [message4_current] knows_current(crypt(cons(Na,cons(nonceb_current(A,B),nil)),key(sym,r_current(A,B)))) :- knows_current(crypt(Na,key(sym,r_current(A,B)))), knows_current(cons(A,cons(enc(Ka,passwd_current(A,B)),nil))).
  Assume knows_current(crypt($Na,key(sym,r_current($A,$B)))). knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))).
  Show  knows_current(crypt(cons($Na,cons(nonceb_current($A,$B),nil)),key(sym,r_current($A,$B)))).
  using lemma 259 knows_current(crypt(X1,X2)) :- __def_90(X2), __def_89(X1).
   {X2=key(sym,r_current($A,$B)),X1=cons($Na,cons(nonceb_current($A,$B),nil))}
1. __def_90(key(sym,r_current($A,$B))).
    using lemma 25 __def_90(key(X1,X2)) :- __def_95(X2), __def_94(X1).
     {X2=r_current($A,$B),X1=sym}
1.1. __def_95(r_current($A,$B)).
      using lemma 46 __def_95(r_current(X1,X2)) :- __def_88 (X1,X3,X2).
       {X3=$Na,X2=$B,X1=$A}
1.1.1. __def_88 ($A,$Na,$B).
        using lemma 152 __def_88 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))).
         {X3=$B,X2=$Na,X4=$Ka,X1=$A}
1.1.1.1. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
1.1.1.2. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
1.2. __def_94(sym) by lemma 92.
2. __def_89(cons($Na,cons(nonceb_current($A,$B),nil))).
    using lemma 36 __def_89(cons(X1,X2)) :- __def_91(X2), __type_20(X1).
     {X2=cons(nonceb_current($A,$B),nil),X1=$Na}
2.1. __def_91(cons(nonceb_current($A,$B),nil)).
      using lemma 43 __def_91(cons(X1,X2)) :- __def_93(X2), __def_92(X1).
       {X2=nil,X1=nonceb_current($A,$B)}
2.1.1. __def_93(nil) by lemma 70.
2.1.2. __def_92(nonceb_current($A,$B)).
        using lemma 57 __def_92(nonceb_current(X1,X2)) :- __def_88 (X1,X3,X2).
         {X3=$Na,X2=$B,X1=$A}
2.1.2.1. __def_88 ($A,$Na,$B).
          using lemma 152 __def_88 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))).
           {X3=$B,X2=$Na,X4=$Ka,X1=$A}
2.1.2.1.1. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
2.1.2.1.2. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
2.2. __type_20($Na).
      using lemma 118 __type_20(X1) :- __def_88 (X2,X1,X3).
       {X3=$B,X2=$A,X1=$Na}
2.2.1. __def_88 ($A,$Na,$B).
        using lemma 152 __def_88 (X1,X2,X3) :- knows_current(crypt(X2,key(sym,r_current(X1,X3)))), knows_current(cons(X1,cons(enc(X4,passwd_current(X1,X3)),nil))).
         {X3=$B,X2=$Na,X4=$Ka,X1=$A}
2.2.1.1. knows_current(crypt($Na,key(sym,r_current($A,$B)))) by assumption.
2.2.1.2. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
. [message3_current] knows_current(crypt(noncea_current(A,B),key(sym,R))) :- knows_current(enc(crypt(R,key(pub,session_current(A,B))),passwd_current(A,B))).
  Assume knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))).
  Show  knows_current(crypt(noncea_current($A,$B),key(sym,$R))).
  using lemma 157 knows_current(crypt(X1,X2)) :- __def_86(X2), __def_85(X1).
   {X2=key(sym,$R),X1=noncea_current($A,$B)}
1. __def_86(key(sym,$R)).
    using lemma 90 __def_86(key(X1,X2)) :- __type_19(X2), __def_87(X1).
     {X2=$R,X1=sym}
1.1. __type_19($R).
      using lemma 37 __type_19(X1) :- __def_84 (X2,X3,X1).
       {X3=$B,X2=$A,X1=$R}
1.1.1. __def_84 ($A,$B,$R).
        using lemma 6 __def_84 (X1,X2,X3) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))).
         {X3=$R,X2=$B,X1=$A}
1.1.1.1. knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))) by assumption.
1.2. __def_87(sym) by lemma 111.
2. __def_85(noncea_current($A,$B)).
    using lemma 18 __def_85(noncea_current(X1,X2)) :- __def_84 (X1,X2,X3).
     {X3=$R,X2=$B,X1=$A}
2.1. __def_84 ($A,$B,$R).
      using lemma 6 __def_84 (X1,X2,X3) :- knows_current(enc(crypt(X3,key(pub,session_current(X1,X2))),passwd_current(X1,X2))).
       {X3=$R,X2=$B,X1=$A}
2.1.1. knows_current(enc(crypt($R,key(pub,session_current($A,$B))),passwd_current($A,$B))) by assumption.
. [message2_dec_current] knows_current(enc(crypt(r_current(A,B),dec(M,passwd_current(A,B))),passwd_current(A,B))) :- knows_current(cons(A,cons(M,nil))).
  Assume knows_current(cons($A,cons($M,nil))).
  Show  knows_current(enc(crypt(r_current($A,$B),dec($M,passwd_current($A,$B))),passwd_current($A,$B))).
  using lemma 244 knows_current(enc(X1,X2)) :- __def_81(X2), __def_80(X1).
   {X2=passwd_current($A,$B),X1=crypt(r_current($A,$B),dec($M,passwd_current($A,$B)))}
1. __def_81(passwd_current($A,$B)).
    using lemma 77 __def_81(passwd_current(X1,X2)) :- __def_79 (X1,X3).
     {X3=$M,X2=$B,X1=$A}
1.1. __def_79 ($A,$M).
      using lemma 20 __def_79 (X1,X2) :- knows_current(cons(X1,cons(X2,nil))).
       {X2=$M,X1=$A}
1.1.1. knows_current(cons($A,cons($M,nil))) by assumption.
2. __def_80(crypt(r_current($A,$B),dec($M,passwd_current($A,$B)))).
    using lemma 97 __def_80(crypt(X1,X2)) :- __def_83(X2), __def_82(X1).
     {X2=dec($M,passwd_current($A,$B)),X1=r_current($A,$B)}
2.1. __def_83(dec($M,passwd_current($A,$B))).
      using lemma 31 __def_83(dec(X1,X2)) :- __def_81(X2), __type_18(X1).
       {X2=passwd_current($A,$B),X1=$M}
2.1.1. __def_81(passwd_current($A,$B)).
        using lemma 77 __def_81(passwd_current(X1,X2)) :- __def_79 (X1,X3).
         {X3=$M,X2=$B,X1=$A}
2.1.1.1. __def_79 ($A,$M).
          using lemma 20 __def_79 (X1,X2) :- knows_current(cons(X1,cons(X2,nil))).
           {X2=$M,X1=$A}
2.1.1.1.1. knows_current(cons($A,cons($M,nil))) by assumption.
2.1.2. __type_18($M).
        using lemma 44 __type_18(X1) :- __def_79 (X2,X1).
         {X2=$A,X1=$M}
2.1.2.1. __def_79 ($A,$M).
          using lemma 20 __def_79 (X1,X2) :- knows_current(cons(X1,cons(X2,nil))).
           {X2=$M,X1=$A}
2.1.2.1.1. knows_current(cons($A,cons($M,nil))) by assumption.
2.2. __def_82(r_current($A,$B)).
      using lemma 115 __def_82(r_current(X1,X2)) :- __def_79 (X1,X3).
       {X3=$M,X2=$B,X1=$A}
2.2.1. __def_79 ($A,$M).
        using lemma 20 __def_79 (X1,X2) :- knows_current(cons(X1,cons(X2,nil))).
         {X2=$M,X1=$A}
2.2.1.1. knows_current(cons($A,cons($M,nil))) by assumption.
. [message2_current] knows_current(enc(crypt(r_current(A,B),Ka),passwd_current(A,B))) :- knows_current(cons(A,cons(enc(Ka,passwd_current(A,B)),nil))).
  Assume knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))).
  Show  knows_current(enc(crypt(r_current($A,$B),$Ka),passwd_current($A,$B))).
  using lemma 227 knows_current(enc(X1,X2)) :- __def_77(X2), __def_76(X1).
   {X2=passwd_current($A,$B),X1=crypt(r_current($A,$B),$Ka)}
1. __def_77(passwd_current($A,$B)).
    using lemma 80 __def_77(passwd_current(X1,X2)) :- __def_75 (X1,X2,X3).
     {X3=$Ka,X2=$B,X1=$A}
1.1. __def_75 ($A,$B,$Ka).
      using lemma 52 __def_75 (X1,X2,X3) :- knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))).
       {X3=$Ka,X2=$B,X1=$A}
1.1.1. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
2. __def_76(crypt(r_current($A,$B),$Ka)).
    using lemma 119 __def_76(crypt(X1,X2)) :- __type_17(X2), __def_78(X1).
     {X2=$Ka,X1=r_current($A,$B)}
2.1. __type_17($Ka).
      using lemma 15 __type_17(X1) :- __def_75 (X2,X3,X1).
       {X3=$B,X2=$A,X1=$Ka}
2.1.1. __def_75 ($A,$B,$Ka).
        using lemma 52 __def_75 (X1,X2,X3) :- knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))).
         {X3=$Ka,X2=$B,X1=$A}
2.1.1.1. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
2.2. __def_78(r_current($A,$B)).
      using lemma 85 __def_78(r_current(X1,X2)) :- __def_75 (X1,X2,X3).
       {X3=$Ka,X2=$B,X1=$A}
2.2.1. __def_75 ($A,$B,$Ka).
        using lemma 52 __def_75 (X1,X2,X3) :- knows_current(cons(X1,cons(enc(X3,passwd_current(X1,X2)),nil))).
         {X3=$Ka,X2=$B,X1=$A}
2.2.1.1. knows_current(cons($A,cons(enc($Ka,passwd_current($A,$B)),nil))) by assumption.
. [message1_current] knows_current(cons(A,cons(enc(key(pub,session_current(A,B)),passwd_current(A,B)),nil))) :- agent(B), agent(A).
  Assume agent($B). agent($A).
  Show  knows_current(cons($A,cons(enc(key(pub,session_current($A,$B)),passwd_current($A,$B)),nil))).
  using lemma 245 knows_current(cons(X1,X2)) :- __def_70(X2), __type_1(X1).
   {X2=cons(enc(key(pub,session_current($A,$B)),passwd_current($A,$B)),nil),X1=$A}
1. __def_70(cons(enc(key(pub,session_current($A,$B)),passwd_current($A,$B)),nil)).
    using lemma 51 __def_70(cons(X1,X2)) :- __def_9(X2), __def_71(X1).
     {X2=nil,X1=enc(key(pub,session_current($A,$B)),passwd_current($A,$B))}
1.1. __def_9(nil) by lemma 58.
1.2. __def_71(enc(key(pub,session_current($A,$B)),passwd_current($A,$B))).
      using lemma 17 __def_71(enc(X1,X2)) :- __def_73(X2), __def_72(X1).
       {X2=passwd_current($A,$B),X1=key(pub,session_current($A,$B))}
1.2.1. __def_73(passwd_current($A,$B)).
        using lemma 74 __def_73(passwd_current(X1,X2)) :- agent(X2), agent(X1).
         {X2=$B,X1=$A}
1.2.1.1. agent($B) by assumption.
1.2.1.2. agent($A) by assumption.
1.2.2. __def_72(key(pub,session_current($A,$B))).
        using lemma 69 __def_72(key(X1,X2)) :- __def_74(X2), __def_12(X1).
         {X2=session_current($A,$B),X1=pub}
1.2.2.1. __def_74(session_current($A,$B)).
          using lemma 65 __def_74(session_current(X1,X2)) :- agent(X2), agent(X1).
           {X2=$B,X1=$A}
1.2.2.1.1. agent($B) by assumption.
1.2.2.1.2. agent($A) by assumption.
1.2.2.2. __def_12(pub) by lemma 148.
2. __type_1($A).
    using lemma 55 __type_1(X1) :- agent(X1).
     {X1=$A}
2.1. agent($A) by assumption.
. [intruder_can_dec_enc_current] knows_current(M) :- knows_current(K), knows_current(enc(M,K)).
  Assume knows_current($K). knows_current(enc($M,$K)).
  Show  knows_current($M).
  using lemma 207 knows_current(X1) :- knows_current(enc(X1,X2)), knows_current(X2).
   {X2=$K,X1=$M}
1. knows_current(enc($M,$K)) by assumption.
2. knows_current($K) by assumption.
. [intruder_can_dec_current] knows_current(dec(M,K)) :- knows_current(K), knows_current(M).
  Assume knows_current($K). knows_current($M).
  Show  knows_current(dec($M,$K)).
  using lemma 181 knows_current(dec(X1,X2)) :- knows_current(X2), knows_current(X1).
   {X2=$K,X1=$M}
1. knows_current($K) by assumption.
2. knows_current($M) by assumption.
. [intruder_can_enc_dec_current] knows_current(M) :- knows_current(K), knows_current(dec(M,K)).
  Assume knows_current($K). knows_current(dec($M,$K)).
  Show  knows_current($M).
  using lemma 170 knows_current(X1) :- knows_current(dec(X1,X2)), knows_current(X2).
   {X2=$K,X1=$M}
1. knows_current(dec($M,$K)) by assumption.
2. knows_current($K) by assumption.
. [intruder_can_enc_current] knows_current(enc(M,K)) :- knows_current(K), knows_current(M).
  Assume knows_current($K). knows_current($M).
  Show  knows_current(enc($M,$K)).
  using lemma 225 knows_current(enc(X1,X2)) :- knows_current(X2), knows_current(X1).
   {X2=$K,X1=$M}
1. knows_current($K) by assumption.
2. knows_current($M) by assumption.
. [intruder_can_compute_predecessors_succ_current] knows_current(p(M)) :- knows_current(M).
  Assume knows_current($M).
  Show  knows_current(p($M)).
  using lemma 187 knows_current(p(X1)) :- knows_current(X1).
   {X1=$M}
1. knows_current($M) by assumption.
. [intruder_can_compute_predecessors_current] knows_current(M) :- knows_current(s(M)).
  Assume knows_current(s($M)).
  Show  knows_current($M).
  using lemma 240 knows_current(X1) :- knows_current(s(X1)).
   {X1=$M}
1. knows_current(s($M)) by assumption.
. [intruder_can_compute_successors_pred_current] knows_current(M) :- knows_current(p(M)).
  Assume knows_current(p($M)).
  Show  knows_current($M).
  using lemma 252 knows_current(X1) :- knows_current(p(X1)).
   {X1=$M}
1. knows_current(p($M)) by assumption.
. [intruder_can_compute_successors_current] knows_current(s(M)) :- knows_current(M).
  Assume knows_current($M).
  Show  knows_current(s($M)).
  using lemma 183 knows_current(s(X1)) :- knows_current(X1).
   {X1=$M}
1. knows_current($M) by assumption.
. [intruder_can_decrypt_if_has_symmetric_key_current] knows_current(M) :- knows_current(crypt(M,key(sym,X))), knows_current(key(sym,X)).
  Assume knows_current(crypt($M,key(sym,$X))). knows_current(key(sym,$X)).
  Show  knows_current($M).
  using lemma 169 knows_current(X1) :- __def_68 (X1,X2), __def_69(X2).
   {X2=$X,X1=$M}
1. __def_68 ($M,$X).
    using lemma 98 __def_68 (X1,X2) :- knows_current(crypt(X1,key(sym,X2))).
     {X2=$X,X1=$M}
1.1. knows_current(crypt($M,key(sym,$X))) by assumption.
2. __def_69($X).
    using lemma 79 __def_69(X1) :- knows_current(key(sym,X1)).
     {X1=$X}
2.1. knows_current(key(sym,$X)) by assumption.
. [intruder_can_decrypt_if_has_public_key_current] knows_current(M) :- knows_current(crypt(M,key(prv,K))), knows_current(key(pub,K)).
  Assume knows_current(crypt($M,key(prv,$K))). knows_current(key(pub,$K)).
  Show  knows_current($M).
  using lemma 211 knows_current(X1) :- __def_66 (X2,X1), __def_67(X2).
   {X2=$K,X1=$M}
1. __def_66 ($K,$M).
    using lemma 116 __def_66 (X1,X2) :- knows_current(crypt(X2,key(prv,X1))).
     {X2=$M,X1=$K}
1.1. knows_current(crypt($M,key(prv,$K))) by assumption.
2. __def_67($K).
    using lemma 109 __def_67(X1) :- knows_current(key(pub,X1)).
     {X1=$K}
2.1. knows_current(key(pub,$K)) by assumption.
. [intruder_can_decrypt_if_has_private_key_current] knows_current(M) :- knows_current(crypt(M,key(pub,K))), knows_current(key(prv,K)).
  Assume knows_current(crypt($M,key(pub,$K))). knows_current(key(prv,$K)).
  Show  knows_current($M).
  using lemma 241 knows_current(X1) :- __def_64 (X2,X1), __def_65(X2).
   {X2=$K,X1=$M}
1. __def_64 ($K,$M).
    using lemma 124 __def_64 (X1,X2) :- knows_current(crypt(X2,key(pub,X1))).
     {X2=$M,X1=$K}
1.1. knows_current(crypt($M,key(pub,$K))) by assumption.
2. __def_65($K).
    using lemma 133 __def_65(X1) :- knows_current(key(prv,X1)).
     {X1=$K}
2.1. knows_current(key(prv,$K)) by assumption.
. [intruder_can_encrypt_current] knows_current(crypt(M,K)) :- knows_current(M), knows_current(K).
  Assume knows_current($M). knows_current($K).
  Show  knows_current(crypt($M,$K)).
  using lemma 251 knows_current(crypt(X1,X2)) :- knows_current(X2), knows_current(X1).
   {X2=$K,X1=$M}
1. knows_current($K) by assumption.
2. knows_current($M) by assumption.
. [intruder_can_build_pairs_current] knows_current(cons(M1,M2)) :- knows_current(M1), knows_current(M2).
  Assume knows_current($M1). knows_current($M2).
  Show  knows_current(cons($M1,$M2)).
  using lemma 261 knows_current(cons(X1,X2)) :- knows_current(X2), knows_current(X1).
   {X2=$M2,X1=$M1}
1. knows_current($M2) by assumption.
2. knows_current($M1) by assumption.
. [intruder_can_take_second_components_current] knows_current(M2) :- knows_current(cons(M1,M2)).
  Assume knows_current(cons($M1,$M2)).
  Show  knows_current($M2).
  using lemma 162 knows_current(X1) :- knows_current(cons(X2,X1)).
   {X2=$M1,X1=$M2}
1. knows_current(cons($M1,$M2)) by assumption.
. [intruder_can_take_first_components_current] knows_current(M1) :- knows_current(cons(M1,M2)).
  Assume knows_current(cons($M1,$M2)).
  Show  knows_current($M1).
  using lemma 220 knows_current(X1) :- knows_current(cons(X1,X2)).
   {X2=$M2,X1=$M1}
1. knows_current(cons($M1,$M2)) by assumption.
. [intruder_knows_nil_current] knows_current(nil).
  Show  knows_current(nil) by lemma 235.
. [intruder_knows_all_previous_nonceb] knows_current(nonceb_old(A,B)).
  Show  knows_current(nonceb_old($A,$B)) by lemma 160.
. [intruder_knows_all_previous_noncea] knows_current(noncea_old(A,B)).
  Show  knows_current(noncea_old($A,$B)) by lemma 179.
. [intruder_knows_all_previous_passwords] knows_current(passwd_old(A,B)).
  Show  knows_current(passwd_old($A,$B)) by lemma 223.
. [intruder_remembers] knows_current(M) :- knows_old(M).
  Assume knows_old($M).
  Show  knows_current($M).
  using lemma 177 knows_current(X1) :- knows_old(X1).
   {X1=$M}
1. knows_old($M) by assumption.
. [intruder_knows_own_private_key_old] knows_old(key(prv,i)).
  Show  knows_old(key(prv,i)).
  using lemma 164 knows_old(key(X1,X2)) :- __def_63(X2), __def_62(X1).
   {X2=i,X1=prv}
1. __def_63(i) by lemma 39.
2. __def_62(prv) by lemma 64.
. [testable_dec_key_dec_old] testable_old(X) :- knows_old(enc(M,X)), testable_old(M).
  Assume knows_old(enc($M,$X)). testable_old($M).
  Show  testable_old($X).
  using lemma 224 testable_old(X1) :- knows_old(enc(X2,X1)), testable_old(X2).
   {X2=$M,X1=$X}
1. knows_old(enc($M,$X)) by assumption.
2. testable_old($M) by assumption.
. [testable_dec_key_old] testable_old(X) :- knows_old(M), testable_old(dec(M,X)).
  Assume knows_old($M). testable_old(dec($M,$X)).
  Show  testable_old($X).
  using lemma 222 testable_old(X1) :- testable_old(dec(X2,X1)), knows_old(X2).
   {X2=$M,X1=$X}
1. testable_old(dec($M,$X)) by assumption.
2. knows_old($M) by assumption.
. [testable_enc_key_dec_old] testable_old(X) :- knows_old(dec(M,X)), testable_old(M).
  Assume knows_old(dec($M,$X)). testable_old($M).
  Show  testable_old($X).
  using lemma 189 testable_old(X1) :- knows_old(dec(X2,X1)), testable_old(X2).
   {X2=$M,X1=$X}
1. knows_old(dec($M,$X)) by assumption.
2. testable_old($M) by assumption.
. [testable_enc_key_old] testable_old(X) :- knows_old(M), testable_old(enc(M,X)).
  Assume knows_old($M). testable_old(enc($M,$X)).
  Show  testable_old($X).
  using lemma 206 testable_old(X1) :- testable_old(enc(X2,X1)), knows_old(X2).
   {X2=$M,X1=$X}
1. testable_old(enc($M,$X)) by assumption.
2. knows_old($M) by assumption.
. [testable_enc_dec_old] testable_old(dec(M,K)) :- knows_old(K), testable_old(M).
  Assume knows_old($K). testable_old($M).
  Show  testable_old(dec($M,$K)).
  using lemma 228 testable_old(dec(X1,X2)) :- knows_old(X2), testable_old(X1).
   {X2=$K,X1=$M}
1. knows_old($K) by assumption.
2. testable_old($M) by assumption.
. [testable_enc_old] testable_old(M) :- knows_old(K), testable_old(enc(M,K)).
  Assume knows_old($K). testable_old(enc($M,$K)).
  Show  testable_old($M).
  using lemma 212 testable_old(X1) :- testable_old(enc(X1,X2)), knows_old(X2).
   {X2=$K,X1=$M}
1. testable_old(enc($M,$K)) by assumption.
2. knows_old($K) by assumption.
. [testable_dec_dec_old] testable_old(M) :- knows_old(K), testable_old(dec(M,K)).
  Assume knows_old($K). testable_old(dec($M,$K)).
  Show  testable_old($M).
  using lemma 236 testable_old(X1) :- testable_old(dec(X1,X2)), knows_old(X2).
   {X2=$K,X1=$M}
1. testable_old(dec($M,$K)) by assumption.
2. knows_old($K) by assumption.
. [testable_dec_old] testable_old(enc(M,K)) :- knows_old(K), testable_old(M).
  Assume knows_old($K). testable_old($M).
  Show  testable_old(enc($M,$K)).
  using lemma 192 testable_old(enc(X1,X2)) :- knows_old(X2), testable_old(X1).
   {X2=$K,X1=$M}
1. knows_old($K) by assumption.
2. testable_old($M) by assumption.
. [testable_encrypt_key_old] testable_old(X) :- knows_old(M), testable_old(crypt(M,X)).
  Assume knows_old($M). testable_old(crypt($M,$X)).
  Show  testable_old($X).
  using lemma 210 testable_old(X1) :- testable_old(crypt(X2,X1)), knows_old(X2).
   {X2=$M,X1=$X}
1. testable_old(crypt($M,$X)) by assumption.
2. knows_old($M) by assumption.
. [testable_decrypt_key_symmetric_key_old] testable_old(key(sym,K)) :- knows_old(crypt(M,key(sym,K))), testable_old(M).
  Assume knows_old(crypt($M,key(sym,$K))). testable_old($M).
  Show  testable_old(key(sym,$K)).
  using lemma 232 testable_old(key(X1,X2)) :- __type_16(X2), __def_61(X1).
   {X2=$K,X1=sym}
1. __type_16($K).
    using lemma 107 __type_16(X1) :- __def_60 (X1,X2), testable_old(X2).
     {X2=$M,X1=$K}
1.1. __def_60 ($K,$M).
      using lemma 122 __def_60 (X1,X2) :- knows_old(crypt(X2,key(sym,X1))).
       {X2=$M,X1=$K}
1.1.1. knows_old(crypt($M,key(sym,$K))) by assumption.
1.2. testable_old($M) by assumption.
2. __def_61(sym) by lemma 38.
. [testable_decrypt_key_public_key_old] testable_old(key(pub,K)) :- knows_old(crypt(M,key(prv,K))), testable_old(M).
  Assume knows_old(crypt($M,key(prv,$K))). testable_old($M).
  Show  testable_old(key(pub,$K)).
  using lemma 156 testable_old(key(X1,X2)) :- __type_15(X2), __def_59(X1).
   {X2=$K,X1=pub}
1. __type_15($K).
    using lemma 42 __type_15(X1) :- __def_3 (X1,X2), testable_old(X2).
     {X2=$M,X1=$K}
1.1. __def_3 ($K,$M).
      using lemma 29 __def_3 (X1,X2) :- knows_old(crypt(X2,key(prv,X1))).
       {X2=$M,X1=$K}
1.1.1. knows_old(crypt($M,key(prv,$K))) by assumption.
1.2. testable_old($M) by assumption.
2. __def_59(pub) by lemma 4.
. [testable_decrypt_key_private_key_old] testable_old(key(prv,K)) :- knows_old(crypt(M,key(pub,K))), testable_old(M).
  Assume knows_old(crypt($M,key(pub,$K))). testable_old($M).
  Show  testable_old(key(prv,$K)).
  using lemma 213 testable_old(key(X1,X2)) :- __type_14(X2), __def_58(X1).
   {X2=$K,X1=prv}
1. __type_14($K).
    using lemma 86 __type_14(X1) :- __def_1 (X1,X2), testable_old(X2).
     {X2=$M,X1=$K}
1.1. __def_1 ($K,$M).
      using lemma 24 __def_1 (X1,X2) :- knows_old(crypt(X2,key(pub,X1))).
       {X2=$M,X1=$K}
1.1.1. knows_old(crypt($M,key(pub,$K))) by assumption.
1.2. testable_old($M) by assumption.
2. __def_58(prv) by lemma 30.
. [testable_encrypt_old] testable_old(M) :- knows_old(K), testable_old(crypt(M,K)).
  Assume knows_old($K). testable_old(crypt($M,$K)).
  Show  testable_old($M).
  using lemma 231 testable_old(X1) :- testable_old(crypt(X1,X2)), knows_old(X2).
   {X2=$K,X1=$M}
1. testable_old(crypt($M,$K)) by assumption.
2. knows_old($K) by assumption.
. [testable_decrypt_symmetric_key_old] testable_old(crypt(M,key(sym,X))) :- knows_old(key(sym,X)), testable_old(M).
  Assume knows_old(key(sym,$X)). testable_old($M).
  Show  testable_old(crypt($M,key(sym,$X))).
  using lemma 262 testable_old(crypt(X1,X2)) :- __def_56(X2), __type_13(X1).
   {X2=key(sym,$X),X1=$M}
1. __def_56(key(sym,$X)).
    using lemma 84 __def_56(key(X1,X2)) :- __def_6(X2), __def_57(X1).
     {X2=$X,X1=sym}
1.1. __def_6($X).
      using lemma 60 __def_6(X1) :- knows_old(key(sym,X1)).
       {X1=$X}
1.1.1. knows_old(key(sym,$X)) by assumption.
1.2. __def_57(sym) by lemma 150.
2. __type_13($M).
    using lemma 7 __type_13(X1) :- testable_old(X1).
     {X1=$M}
2.1. testable_old($M) by assumption.
. [testable_decrypt_public_key_old] testable_old(crypt(M,key(prv,K))) :- knows_old(key(pub,K)), testable_old(M).
  Assume knows_old(key(pub,$K)). testable_old($M).
  Show  testable_old(crypt($M,key(prv,$K))).
  using lemma 201 testable_old(crypt(X1,X2)) :- __def_54(X2), __type_12(X1).
   {X2=key(prv,$K),X1=$M}
1. __def_54(key(prv,$K)).
    using lemma 149 __def_54(key(X1,X2)) :- __def_4(X2), __def_55(X1).
     {X2=$K,X1=prv}
1.1. __def_4($K).
      using lemma 61 __def_4(X1) :- knows_old(key(pub,X1)).
       {X1=$K}
1.1.1. knows_old(key(pub,$K)) by assumption.
1.2. __def_55(prv) by lemma 78.
2. __type_12($M).
    using lemma 23 __type_12(X1) :- testable_old(X1).
     {X1=$M}
2.1. testable_old($M) by assumption.
. [testable_decrypt_private_key_old] testable_old(crypt(M,key(pub,K))) :- knows_old(key(prv,K)), testable_old(M).
  Assume knows_old(key(prv,$K)). testable_old($M).
  Show  testable_old(crypt($M,key(pub,$K))).
  using lemma 158 testable_old(crypt(X1,X2)) :- __def_52(X2), __type_11(X1).
   {X2=key(pub,$K),X1=$M}
1. __def_52(key(pub,$K)).
    using lemma 103 __def_52(key(X1,X2)) :- __def_2(X2), __def_53(X1).
     {X2=$K,X1=pub}
1.1. __def_2($K).
      using lemma 81 __def_2(X1) :- knows_old(key(prv,X1)).
       {X1=$K}
1.1.1. knows_old(key(prv,$K)) by assumption.
1.2. __def_53(pub) by lemma 108.
2. __type_11($M).
    using lemma 12 __type_11(X1) :- testable_old(X1).
     {X1=$M}
2.1. testable_old($M) by assumption.
. [testable_succ_pred_old] testable_old(p(M)) :- testable_old(M).
  Assume testable_old($M).
  Show  testable_old(p($M)).
  using lemma 226 testable_old(p(X1)) :- testable_old(X1).
   {X1=$M}
1. testable_old($M) by assumption.
. [testable_succ_old] testable_old(M) :- testable_old(s(M)).
  Assume testable_old(s($M)).
  Show  testable_old($M).
  using lemma 230 testable_old(X1) :- testable_old(s(X1)).
   {X1=$M}
1. testable_old(s($M)) by assumption.
. [testable_pred_pred_old] testable_old(M) :- testable_old(p(M)).
  Assume testable_old(p($M)).
  Show  testable_old($M).
  using lemma 159 testable_old(X1) :- testable_old(p(X1)).
   {X1=$M}
1. testable_old(p($M)) by assumption.
. [testable_pred_old] testable_old(s(M)) :- testable_old(M).
  Assume testable_old($M).
  Show  testable_old(s($M)).
  using lemma 255 testable_old(s(X1)) :- testable_old(X1).
   {X1=$M}
1. testable_old($M) by assumption.
. [second_testable_old] testable_old(cons(M,L)) :- testable_old(L).
  Assume testable_old($L).
  Show  testable_old(cons($M,$L)).
  using lemma 161 testable_old(cons(X1,X2)) :- testable_old(X2).
   {X2=$L,X1=$M}
1. testable_old($L) by assumption.
. [first_testable_old] testable_old(cons(M,L)) :- testable_old(M).
  Assume testable_old($M).
  Show  testable_old(cons($M,$L)).
  using lemma 198 testable_old(cons(X1,X2)) :- testable_old(X1).
   {X2=$L,X1=$M}
1. testable_old($M) by assumption.
. [known_implies_testable_old] testable_old(M) :- knows_old(M).
  Assume knows_old($M).
  Show  testable_old($M).
  using lemma 168 testable_old(X1) :- knows_old(X1).
   {X1=$M}
1. knows_old($M) by assumption.
. [intruder_weak_secret_dec_dec_old] knows_old(P) :- testable_old(M), testable_old(dec(M,P)).
  Assume testable_old($M). testable_old(dec($M,$P)).
  Show  knows_old($P).
  using lemma 193 knows_old(X1) :- testable_old(dec(X2,X1)), testable_old(X2).
   {X2=$M,X1=$P}
1. testable_old(dec($M,$P)) by assumption.
2. testable_old($M) by assumption.
. [intruder_weak_secret_dec_old] knows_old(P) :- testable_old(enc(M,P)), testable_old(M).
  Assume testable_old(enc($M,$P)). testable_old($M).
  Show  knows_old($P).
  using lemma 174 knows_old(X1) :- testable_old(enc(X2,X1)), testable_old(X2).
   {X2=$M,X1=$P}
1. testable_old(enc($M,$P)) by assumption.
2. testable_old($M) by assumption.
. [intruder_knows_agents_public_key_old] knows_old(key(pub,X)) :- agent(X).
  Assume agent($X).
  Show  knows_old(key(pub,$X)).
  using lemma 214 knows_old(key(X1,X2)) :- agent(X2), __def_51(X1).
   {X2=$X,X1=pub}
1. agent($X) by assumption.
2. __def_51(pub) by lemma 143.
. [intruder_knows_all_agents_old] knows_old(X) :- agent(X).
  Assume agent($X).
  Show  knows_old($X).
  using lemma 242 knows_old(X1) :- agent(X1).
   {X1=$X}
1. agent($X) by assumption.
. [define_bob_key_dec_old] bob_key_old (A,r_old(A,B)) :- knows_old(crypt(nonceb_old(A,B),key(sym,r_old(A,B)))), knows_old(crypt(Na,key(sym,r_old(A,B)))), knows_old(cons(A,cons(M,nil))).
  Assume knows_old(crypt(nonceb_old($A,$B),key(sym,r_old($A,$B)))). knows_old(crypt($Na,key(sym,r_old($A,$B)))). knows_old(cons($A,cons($M,nil))).
  Show  bob_key_old ($A,r_old($A,$B)).
  using lemma 229 bob_key_old (X1,X2) :- __def_50(X2), __type_10(X1).
   {X2=r_old($A,$B),X1=$A}
1. __def_50(r_old($A,$B)).
    using lemma 100 __def_50(r_old(X1,X2)) :- __def_49 (X1,X2).
     {X2=$B,X1=$A}
1.1. __def_49 ($A,$B).
      using lemma 76 __def_49 (X1,X2) :- knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))), knows_old(cons(X1,cons(X4,nil))).
       {X3=$Na,X2=$B,X4=$M,X1=$A}
1.1.1. knows_old(crypt(nonceb_old($A,$B),key(sym,r_old($A,$B)))) by assumption.
1.1.2. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
1.1.3. knows_old(cons($A,cons($M,nil))) by assumption.
2. __type_10($A).
    using lemma 95 __type_10(X1) :- __def_49 (X1,X2).
     {X2=$B,X1=$A}
2.1. __def_49 ($A,$B).
      using lemma 76 __def_49 (X1,X2) :- knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))), knows_old(cons(X1,cons(X4,nil))).
       {X3=$Na,X2=$B,X4=$M,X1=$A}
2.1.1. knows_old(crypt(nonceb_old($A,$B),key(sym,r_old($A,$B)))) by assumption.
2.1.2. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
2.1.3. knows_old(cons($A,cons($M,nil))) by assumption.
. [define_bob_key_old] bob_key_old (A,r_old(A,B)) :- knows_old(crypt(nonceb_old(A,B),key(sym,r_old(A,B)))), knows_old(crypt(Na,key(sym,r_old(A,B)))), knows_old(cons(A,cons(enc(Ka,passwd_old(A,B)),nil))).
  Assume knows_old(crypt(nonceb_old($A,$B),key(sym,r_old($A,$B)))). knows_old(crypt($Na,key(sym,r_old($A,$B)))). knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))).
  Show  bob_key_old ($A,r_old($A,$B)).
  using lemma 202 bob_key_old (X1,X2) :- __def_48(X2), __type_9(X1).
   {X2=r_old($A,$B),X1=$A}
1. __def_48(r_old($A,$B)).
    using lemma 89 __def_48(r_old(X1,X2)) :- __def_47 (X1,X2).
     {X2=$B,X1=$A}
1.1. __def_47 ($A,$B).
      using lemma 26 __def_47 (X1,X2) :- knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X2)),nil))).
       {X3=$Na,X2=$B,X4=$Ka,X1=$A}
1.1.1. knows_old(crypt(nonceb_old($A,$B),key(sym,r_old($A,$B)))) by assumption.
1.1.2. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
1.1.3. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
2. __type_9($A).
    using lemma 130 __type_9(X1) :- __def_47 (X1,X2).
     {X2=$B,X1=$A}
2.1. __def_47 ($A,$B).
      using lemma 26 __def_47 (X1,X2) :- knows_old(crypt(nonceb_old(X1,X2),key(sym,r_old(X1,X2)))), knows_old(crypt(X3,key(sym,r_old(X1,X2)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X2)),nil))).
       {X3=$Na,X2=$B,X4=$Ka,X1=$A}
2.1.1. knows_old(crypt(nonceb_old($A,$B),key(sym,r_old($A,$B)))) by assumption.
2.1.2. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
2.1.3. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
. [define_alice_key_old] alice_key_old (A,R) :- knows_old(crypt(cons(noncea_old(A,B),cons(Nb,nil)),key(sym,R))), knows_old(enc(crypt(R,key(pub,session_old(A,B))),passwd_old(A,B))).
  Assume knows_old(crypt(cons(noncea_old($A,$B),cons($Nb,nil)),key(sym,$R))). knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))).
  Show  alice_key_old ($A,$R).
  using lemma 260 alice_key_old (X1,X2) :- __def_46 (X4,X1,X3,X2), __def_23 (X1,X3,X2).
   {X3=$B,X2=$R,X4=$Nb,X1=$A}
1. __def_46 ($Nb,$A,$B,$R).
    using lemma 35 __def_46 (X1,X2,X3,X4) :- knows_old(crypt(cons(noncea_old(X2,X3),cons(X1,nil)),key(sym,X4))).
     {X3=$B,X2=$A,X4=$R,X1=$Nb}
1.1. knows_old(crypt(cons(noncea_old($A,$B),cons($Nb,nil)),key(sym,$R))) by assumption.
2. __def_23 ($A,$B,$R).
    using lemma 123 __def_23 (X1,X2,X3) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).
     {X3=$R,X2=$B,X1=$A}
2.1. knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))) by assumption.
. [message5_old] knows_old(crypt(Nb,key(sym,R))) :- knows_old(crypt(cons(noncea_old(A,B),cons(Nb,nil)),key(sym,R))), knows_old(enc(crypt(R,key(pub,session_old(A,B))),passwd_old(A,B))).
  Assume knows_old(crypt(cons(noncea_old($A,$B),cons($Nb,nil)),key(sym,$R))). knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))).
  Show  knows_old(crypt($Nb,key(sym,$R))).
  using lemma 208 knows_old(crypt(X1,X2)) :- __def_44(X2), __type_7(X1).
   {X2=key(sym,$R),X1=$Nb}
1. __def_44(key(sym,$R)).
    using lemma 147 __def_44(key(X1,X2)) :- __type_8(X2), __def_45(X1).
     {X2=$R,X1=sym}
1.1. __type_8($R).
      using lemma 138 __type_8(X1) :- __def_43 (X2,X1).
       {X2=$Nb,X1=$R}
1.1.1. __def_43 ($Nb,$R).
        using lemma 8 __def_43 (X1,X2) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).
         {X3=$A,X2=$R,X4=$B,X1=$Nb}
1.1.1.1. knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))) by assumption.
1.1.1.2. knows_old(crypt(cons(noncea_old($A,$B),cons($Nb,nil)),key(sym,$R))) by assumption.
1.2. __def_45(sym) by lemma 96.
2. __type_7($Nb).
    using lemma 14 __type_7(X1) :- __def_43 (X1,X2).
     {X2=$R,X1=$Nb}
2.1. __def_43 ($Nb,$R).
      using lemma 8 __def_43 (X1,X2) :- knows_old(enc(crypt(X2,key(pub,session_old(X3,X4))),passwd_old(X3,X4))), knows_old(crypt(cons(noncea_old(X3,X4),cons(X1,nil)),key(sym,X2))).
       {X3=$A,X2=$R,X4=$B,X1=$Nb}
2.1.1. knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))) by assumption.
2.1.2. knows_old(crypt(cons(noncea_old($A,$B),cons($Nb,nil)),key(sym,$R))) by assumption.
. [message4_dec_old] knows_old(crypt(cons(Na,cons(nonceb_old(A,B),nil)),key(sym,r_old(A,B)))) :- knows_old(crypt(Na,key(sym,r_old(A,B)))), knows_old(cons(A,cons(M,nil))).
  Assume knows_old(crypt($Na,key(sym,r_old($A,$B)))). knows_old(cons($A,cons($M,nil))).
  Show  knows_old(crypt(cons($Na,cons(nonceb_old($A,$B),nil)),key(sym,r_old($A,$B)))).
  using lemma 270 knows_old(crypt(X1,X2)) :- __def_37(X2), __def_36(X1).
   {X2=key(sym,r_old($A,$B)),X1=cons($Na,cons(nonceb_old($A,$B),nil))}
1. __def_37(key(sym,r_old($A,$B))).
    using lemma 145 __def_37(key(X1,X2)) :- __def_42(X2), __def_41(X1).
     {X2=r_old($A,$B),X1=sym}
1.1. __def_42(r_old($A,$B)).
      using lemma 21 __def_42(r_old(X1,X2)) :- __def_35 (X1,X3,X2).
       {X3=$Na,X2=$B,X1=$A}
1.1.1. __def_35 ($A,$Na,$B).
        using lemma 34 __def_35 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(X4,nil))).
         {X3=$B,X2=$Na,X4=$M,X1=$A}
1.1.1.1. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
1.1.1.2. knows_old(cons($A,cons($M,nil))) by assumption.
1.2. __def_41(sym) by lemma 56.
2. __def_36(cons($Na,cons(nonceb_old($A,$B),nil))).
    using lemma 106 __def_36(cons(X1,X2)) :- __def_38(X2), __type_6(X1).
     {X2=cons(nonceb_old($A,$B),nil),X1=$Na}
2.1. __def_38(cons(nonceb_old($A,$B),nil)).
      using lemma 137 __def_38(cons(X1,X2)) :- __def_40(X2), __def_39(X1).
       {X2=nil,X1=nonceb_old($A,$B)}
2.1.1. __def_40(nil) by lemma 50.
2.1.2. __def_39(nonceb_old($A,$B)).
        using lemma 110 __def_39(nonceb_old(X1,X2)) :- __def_35 (X1,X3,X2).
         {X3=$Na,X2=$B,X1=$A}
2.1.2.1. __def_35 ($A,$Na,$B).
          using lemma 34 __def_35 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(X4,nil))).
           {X3=$B,X2=$Na,X4=$M,X1=$A}
2.1.2.1.1. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
2.1.2.1.2. knows_old(cons($A,cons($M,nil))) by assumption.
2.2. __type_6($Na).
      using lemma 28 __type_6(X1) :- __def_35 (X2,X1,X3).
       {X3=$B,X2=$A,X1=$Na}
2.2.1. __def_35 ($A,$Na,$B).
        using lemma 34 __def_35 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(X4,nil))).
         {X3=$B,X2=$Na,X4=$M,X1=$A}
2.2.1.1. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
2.2.1.2. knows_old(cons($A,cons($M,nil))) by assumption.
. [message4_old] knows_old(crypt(cons(Na,cons(nonceb_old(A,B),nil)),key(sym,r_old(A,B)))) :- knows_old(crypt(Na,key(sym,r_old(A,B)))), knows_old(cons(A,cons(enc(Ka,passwd_old(A,B)),nil))).
  Assume knows_old(crypt($Na,key(sym,r_old($A,$B)))). knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))).
  Show  knows_old(crypt(cons($Na,cons(nonceb_old($A,$B),nil)),key(sym,r_old($A,$B)))).
  using lemma 199 knows_old(crypt(X1,X2)) :- __def_29(X2), __def_28(X1).
   {X2=key(sym,r_old($A,$B)),X1=cons($Na,cons(nonceb_old($A,$B),nil))}
1. __def_29(key(sym,r_old($A,$B))).
    using lemma 104 __def_29(key(X1,X2)) :- __def_34(X2), __def_33(X1).
     {X2=r_old($A,$B),X1=sym}
1.1. __def_34(r_old($A,$B)).
      using lemma 9 __def_34(r_old(X1,X2)) :- __def_27 (X1,X3,X2).
       {X3=$Na,X2=$B,X1=$A}
1.1.1. __def_27 ($A,$Na,$B).
        using lemma 5 __def_27 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).
         {X3=$B,X2=$Na,X4=$Ka,X1=$A}
1.1.1.1. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
1.1.1.2. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
1.2. __def_33(sym) by lemma 2.
2. __def_28(cons($Na,cons(nonceb_old($A,$B),nil))).
    using lemma 131 __def_28(cons(X1,X2)) :- __def_30(X2), __type_5(X1).
     {X2=cons(nonceb_old($A,$B),nil),X1=$Na}
2.1. __def_30(cons(nonceb_old($A,$B),nil)).
      using lemma 54 __def_30(cons(X1,X2)) :- __def_32(X2), __def_31(X1).
       {X2=nil,X1=nonceb_old($A,$B)}
2.1.1. __def_32(nil) by lemma 33.
2.1.2. __def_31(nonceb_old($A,$B)).
        using lemma 117 __def_31(nonceb_old(X1,X2)) :- __def_27 (X1,X3,X2).
         {X3=$Na,X2=$B,X1=$A}
2.1.2.1. __def_27 ($A,$Na,$B).
          using lemma 5 __def_27 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).
           {X3=$B,X2=$Na,X4=$Ka,X1=$A}
2.1.2.1.1. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
2.1.2.1.2. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
2.2. __type_5($Na).
      using lemma 88 __type_5(X1) :- __def_27 (X2,X1,X3).
       {X3=$B,X2=$A,X1=$Na}
2.2.1. __def_27 ($A,$Na,$B).
        using lemma 5 __def_27 (X1,X2,X3) :- knows_old(crypt(X2,key(sym,r_old(X1,X3)))), knows_old(cons(X1,cons(enc(X4,passwd_old(X1,X3)),nil))).
         {X3=$B,X2=$Na,X4=$Ka,X1=$A}
2.2.1.1. knows_old(crypt($Na,key(sym,r_old($A,$B)))) by assumption.
2.2.1.2. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
. [message3_old] knows_old(crypt(noncea_old(A,B),key(sym,R))) :- knows_old(enc(crypt(R,key(pub,session_old(A,B))),passwd_old(A,B))).
  Assume knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))).
  Show  knows_old(crypt(noncea_old($A,$B),key(sym,$R))).
  using lemma 167 knows_old(crypt(X1,X2)) :- __def_25(X2), __def_24(X1).
   {X2=key(sym,$R),X1=noncea_old($A,$B)}
1. __def_25(key(sym,$R)).
    using lemma 10 __def_25(key(X1,X2)) :- __type_4(X2), __def_26(X1).
     {X2=$R,X1=sym}
1.1. __type_4($R).
      using lemma 40 __type_4(X1) :- __def_23 (X2,X3,X1).
       {X3=$B,X2=$A,X1=$R}
1.1.1. __def_23 ($A,$B,$R).
        using lemma 123 __def_23 (X1,X2,X3) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).
         {X3=$R,X2=$B,X1=$A}
1.1.1.1. knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))) by assumption.
1.2. __def_26(sym) by lemma 126.
2. __def_24(noncea_old($A,$B)).
    using lemma 63 __def_24(noncea_old(X1,X2)) :- __def_23 (X1,X2,X3).
     {X3=$R,X2=$B,X1=$A}
2.1. __def_23 ($A,$B,$R).
      using lemma 123 __def_23 (X1,X2,X3) :- knows_old(enc(crypt(X3,key(pub,session_old(X1,X2))),passwd_old(X1,X2))).
       {X3=$R,X2=$B,X1=$A}
2.1.1. knows_old(enc(crypt($R,key(pub,session_old($A,$B))),passwd_old($A,$B))) by assumption.
. [message2_dec_old] knows_old(enc(crypt(r_old(A,B),dec(M,passwd_old(A,B))),passwd_old(A,B))) :- knows_old(cons(A,cons(M,nil))).
  Assume knows_old(cons($A,cons($M,nil))).
  Show  knows_old(enc(crypt(r_old($A,$B),dec($M,passwd_old($A,$B))),passwd_old($A,$B))).
  using lemma 239 knows_old(enc(X1,X2)) :- __def_20(X2), __def_19(X1).
   {X2=passwd_old($A,$B),X1=crypt(r_old($A,$B),dec($M,passwd_old($A,$B)))}
1. __def_20(passwd_old($A,$B)).
    using lemma 45 __def_20(passwd_old(X1,X2)) :- __def_18 (X1,X3).
     {X3=$M,X2=$B,X1=$A}
1.1. __def_18 ($A,$M).
      using lemma 53 __def_18 (X1,X2) :- knows_old(cons(X1,cons(X2,nil))).
       {X2=$M,X1=$A}
1.1.1. knows_old(cons($A,cons($M,nil))) by assumption.
2. __def_19(crypt(r_old($A,$B),dec($M,passwd_old($A,$B)))).
    using lemma 121 __def_19(crypt(X1,X2)) :- __def_22(X2), __def_21(X1).
     {X2=dec($M,passwd_old($A,$B)),X1=r_old($A,$B)}
2.1. __def_22(dec($M,passwd_old($A,$B))).
      using lemma 27 __def_22(dec(X1,X2)) :- __def_20(X2), __type_3(X1).
       {X2=passwd_old($A,$B),X1=$M}
2.1.1. __def_20(passwd_old($A,$B)).
        using lemma 45 __def_20(passwd_old(X1,X2)) :- __def_18 (X1,X3).
         {X3=$M,X2=$B,X1=$A}
2.1.1.1. __def_18 ($A,$M).
          using lemma 53 __def_18 (X1,X2) :- knows_old(cons(X1,cons(X2,nil))).
           {X2=$M,X1=$A}
2.1.1.1.1. knows_old(cons($A,cons($M,nil))) by assumption.
2.1.2. __type_3($M).
        using lemma 68 __type_3(X1) :- __def_18 (X2,X1).
         {X2=$A,X1=$M}
2.1.2.1. __def_18 ($A,$M).
          using lemma 53 __def_18 (X1,X2) :- knows_old(cons(X1,cons(X2,nil))).
           {X2=$M,X1=$A}
2.1.2.1.1. knows_old(cons($A,cons($M,nil))) by assumption.
2.2. __def_21(r_old($A,$B)).
      using lemma 113 __def_21(r_old(X1,X2)) :- __def_18 (X1,X3).
       {X3=$M,X2=$B,X1=$A}
2.2.1. __def_18 ($A,$M).
        using lemma 53 __def_18 (X1,X2) :- knows_old(cons(X1,cons(X2,nil))).
         {X2=$M,X1=$A}
2.2.1.1. knows_old(cons($A,cons($M,nil))) by assumption.
. [message2_old] knows_old(enc(crypt(r_old(A,B),Ka),passwd_old(A,B))) :- knows_old(cons(A,cons(enc(Ka,passwd_old(A,B)),nil))).
  Assume knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))).
  Show  knows_old(enc(crypt(r_old($A,$B),$Ka),passwd_old($A,$B))).
  using lemma 258 knows_old(enc(X1,X2)) :- __def_16(X2), __def_15(X1).
   {X2=passwd_old($A,$B),X1=crypt(r_old($A,$B),$Ka)}
1. __def_16(passwd_old($A,$B)).
    using lemma 32 __def_16(passwd_old(X1,X2)) :- __def_14 (X1,X2,X3).
     {X3=$Ka,X2=$B,X1=$A}
1.1. __def_14 ($A,$B,$Ka).
      using lemma 151 __def_14 (X1,X2,X3) :- knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X2)),nil))).
       {X3=$Ka,X2=$B,X1=$A}
1.1.1. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
2. __def_15(crypt(r_old($A,$B),$Ka)).
    using lemma 71 __def_15(crypt(X1,X2)) :- __type_2(X2), __def_17(X1).
     {X2=$Ka,X1=r_old($A,$B)}
2.1. __type_2($Ka).
      using lemma 94 __type_2(X1) :- __def_14 (X2,X3,X1).
       {X3=$B,X2=$A,X1=$Ka}
2.1.1. __def_14 ($A,$B,$Ka).
        using lemma 151 __def_14 (X1,X2,X3) :- knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X2)),nil))).
         {X3=$Ka,X2=$B,X1=$A}
2.1.1.1. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
2.2. __def_17(r_old($A,$B)).
      using lemma 72 __def_17(r_old(X1,X2)) :- __def_14 (X1,X2,X3).
       {X3=$Ka,X2=$B,X1=$A}
2.2.1. __def_14 ($A,$B,$Ka).
        using lemma 151 __def_14 (X1,X2,X3) :- knows_old(cons(X1,cons(enc(X3,passwd_old(X1,X2)),nil))).
         {X3=$Ka,X2=$B,X1=$A}
2.2.1.1. knows_old(cons($A,cons(enc($Ka,passwd_old($A,$B)),nil))) by assumption.
. [message1_old] knows_old(cons(A,cons(enc(key(pub,session_old(A,B)),passwd_old(A,B)),nil))) :- agent(B), agent(A).
  Assume agent($B). agent($A).
  Show  knows_old(cons($A,cons(enc(key(pub,session_old($A,$B)),passwd_old($A,$B)),nil))).
  using lemma 200 knows_old(cons(X1,X2)) :- __def_7(X2), __type_1(X1).
   {X2=cons(enc(key(pub,session_old($A,$B)),passwd_old($A,$B)),nil),X1=$A}
1. __def_7(cons(enc(key(pub,session_old($A,$B)),passwd_old($A,$B)),nil)).
    using lemma 128 __def_7(cons(X1,X2)) :- __def_9(X2), __def_8(X1).
     {X2=nil,X1=enc(key(pub,session_old($A,$B)),passwd_old($A,$B))}
1.1. __def_9(nil) by lemma 58.
1.2. __def_8(enc(key(pub,session_old($A,$B)),passwd_old($A,$B))).
      using lemma 91 __def_8(enc(X1,X2)) :- __def_11(X2), __def_10(X1).
       {X2=passwd_old($A,$B),X1=key(pub,session_old($A,$B))}
1.2.1. __def_11(passwd_old($A,$B)).
        using lemma 66 __def_11(passwd_old(X1,X2)) :- agent(X2), agent(X1).
         {X2=$B,X1=$A}
1.2.1.1. agent($B) by assumption.
1.2.1.2. agent($A) by assumption.
1.2.2. __def_10(key(pub,session_old($A,$B))).
        using lemma 125 __def_10(key(X1,X2)) :- __def_13(X2), __def_12(X1).
         {X2=session_old($A,$B),X1=pub}
1.2.2.1. __def_13(session_old($A,$B)).
          using lemma 48 __def_13(session_old(X1,X2)) :- agent(X2), agent(X1).
           {X2=$B,X1=$A}
1.2.2.1.1. agent($B) by assumption.
1.2.2.1.2. agent($A) by assumption.
1.2.2.2. __def_12(pub) by lemma 148.
2. __type_1($A).
    using lemma 55 __type_1(X1) :- agent(X1).
     {X1=$A}
2.1. agent($A) by assumption.
. [intruder_can_dec_enc_old] knows_old(M) :- knows_old(K), knows_old(enc(M,K)).
  Assume knows_old($K). knows_old(enc($M,$K)).
  Show  knows_old($M).
  using lemma 219 knows_old(X1) :- knows_old(enc(X1,X2)), knows_old(X2).
   {X2=$K,X1=$M}
1. knows_old(enc($M,$K)) by assumption.
2. knows_old($K) by assumption.
. [intruder_can_dec_old] knows_old(dec(M,K)) :- knows_old(K), knows_old(M).
  Assume knows_old($K). knows_old($M).
  Show  knows_old(dec($M,$K)).
  using lemma 254 knows_old(dec(X1,X2)) :- knows_old(X2), knows_old(X1).
   {X2=$K,X1=$M}
1. knows_old($K) by assumption.
2. knows_old($M) by assumption.
. [intruder_can_enc_dec_old] knows_old(M) :- knows_old(K), knows_old(dec(M,K)).
  Assume knows_old($K). knows_old(dec($M,$K)).
  Show  knows_old($M).
  using lemma 178 knows_old(X1) :- knows_old(dec(X1,X2)), knows_old(X2).
   {X2=$K,X1=$M}
1. knows_old(dec($M,$K)) by assumption.
2. knows_old($K) by assumption.
. [intruder_can_enc_old] knows_old(enc(M,K)) :- knows_old(K), knows_old(M).
  Assume knows_old($K). knows_old($M).
  Show  knows_old(enc($M,$K)).
  using lemma 253 knows_old(enc(X1,X2)) :- knows_old(X2), knows_old(X1).
   {X2=$K,X1=$M}
1. knows_old($K) by assumption.
2. knows_old($M) by assumption.
. [intruder_can_compute_predecessors_succ_old] knows_old(p(M)) :- knows_old(M).
  Assume knows_old($M).
  Show  knows_old(p($M)).
  using lemma 194 knows_old(p(X1)) :- knows_old(X1).
   {X1=$M}
1. knows_old($M) by assumption.
. [intruder_can_compute_predecessors_old] knows_old(M) :- knows_old(s(M)).
  Assume knows_old(s($M)).
  Show  knows_old($M).
  using lemma 203 knows_old(X1) :- knows_old(s(X1)).
   {X1=$M}
1. knows_old(s($M)) by assumption.
. [intruder_can_compute_successors_pred_old] knows_old(M) :- knows_old(p(M)).
  Assume knows_old(p($M)).
  Show  knows_old($M).
  using lemma 221 knows_old(X1) :- knows_old(p(X1)).
   {X1=$M}
1. knows_old(p($M)) by assumption.
. [intruder_can_compute_successors_old] knows_old(s(M)) :- knows_old(M).
  Assume knows_old($M).
  Show  knows_old(s($M)).
  using lemma 217 knows_old(s(X1)) :- knows_old(X1).
   {X1=$M}
1. knows_old($M) by assumption.
. [intruder_can_decrypt_if_has_symmetric_key_old] knows_old(M) :- knows_old(crypt(M,key(sym,X))), knows_old(key(sym,X)).
  Assume knows_old(crypt($M,key(sym,$X))). knows_old(key(sym,$X)).
  Show  knows_old($M).
  using lemma 267 knows_old(X1) :- __def_5 (X1,X2), __def_6(X2).
   {X2=$X,X1=$M}
1. __def_5 ($M,$X).
    using lemma 87 __def_5 (X1,X2) :- knows_old(crypt(X1,key(sym,X2))).
     {X2=$X,X1=$M}
1.1. knows_old(crypt($M,key(sym,$X))) by assumption.
2. __def_6($X).
    using lemma 60 __def_6(X1) :- knows_old(key(sym,X1)).
     {X1=$X}
2.1. knows_old(key(sym,$X)) by assumption.
. [intruder_can_decrypt_if_has_public_key_old] knows_old(M) :- knows_old(crypt(M,key(prv,K))), knows_old(key(pub,K)).
  Assume knows_old(crypt($M,key(prv,$K))). knows_old(key(pub,$K)).
  Show  knows_old($M).
  using lemma 238 knows_old(X1) :- __def_3 (X2,X1), __def_4(X2).
   {X2=$K,X1=$M}
1. __def_3 ($K,$M).
    using lemma 29 __def_3 (X1,X2) :- knows_old(crypt(X2,key(prv,X1))).
     {X2=$M,X1=$K}
1.1. knows_old(crypt($M,key(prv,$K))) by assumption.
2. __def_4($K).
    using lemma 61 __def_4(X1) :- knows_old(key(pub,X1)).
     {X1=$K}
2.1. knows_old(key(pub,$K)) by assumption.
. [intruder_can_decrypt_if_has_private_key_old] knows_old(M) :- knows_old(crypt(M,key(pub,K))), knows_old(key(prv,K)).
  Assume knows_old(crypt($M,key(pub,$K))). knows_old(key(prv,$K)).
  Show  knows_old($M).
  using lemma 233 knows_old(X1) :- __def_1 (X2,X1), __def_2(X2).
   {X2=$K,X1=$M}
1. __def_1 ($K,$M).
    using lemma 24 __def_1 (X1,X2) :- knows_old(crypt(X2,key(pub,X1))).
     {X2=$M,X1=$K}
1.1. knows_old(crypt($M,key(pub,$K))) by assumption.
2. __def_2($K).
    using lemma 81 __def_2(X1) :- knows_old(key(prv,X1)).
     {X1=$K}
2.1. knows_old(key(prv,$K)) by assumption.
. [intruder_can_encrypt_old] knows_old(crypt(M,K)) :- knows_old(M), knows_old(K).
  Assume knows_old($M). knows_old($K).
  Show  knows_old(crypt($M,$K)).
  using lemma 197 knows_old(crypt(X1,X2)) :- knows_old(X2), knows_old(X1).
   {X2=$K,X1=$M}
1. knows_old($K) by assumption.
2. knows_old($M) by assumption.
. [intruder_can_build_pairs_old] knows_old(cons(M1,M2)) :- knows_old(M1), knows_old(M2).
  Assume knows_old($M1). knows_old($M2).
  Show  knows_old(cons($M1,$M2)).
  using lemma 172 knows_old(cons(X1,X2)) :- knows_old(X2), knows_old(X1).
   {X2=$M2,X1=$M1}
1. knows_old($M2) by assumption.
2. knows_old($M1) by assumption.
. [intruder_can_take_second_components_old] knows_old(M2) :- knows_old(cons(M1,M2)).
  Assume knows_old(cons($M1,$M2)).
  Show  knows_old($M2).
  using lemma 196 knows_old(X1) :- knows_old(cons(X2,X1)).
   {X2=$M1,X1=$M2}
1. knows_old(cons($M1,$M2)) by assumption.
. [intruder_can_take_first_components_old] knows_old(M1) :- knows_old(cons(M1,M2)).
  Assume knows_old(cons($M1,$M2)).
  Show  knows_old($M1).
  using lemma 173 knows_old(X1) :- knows_old(cons(X1,X2)).
   {X2=$M2,X1=$M1}
1. knows_old(cons($M1,$M2)) by assumption.
. [intruder_knows_nil_old] knows_old(nil).
  Show  knows_old(nil) by lemma 204.
. [intruder_agent] agent(i).
  Show  agent(i) by lemma 176.
. [server_agent] agent(server).
  Show  agent(server) by lemma 153.
. [bob_agent] agent(bob).
  Show  agent(bob) by lemma 184.
. [alice_agent] agent(alice).
  Show  agent(alice) by lemma 264.
