0.03/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.03/0.12 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.12/0.33 % Computer : n014.cluster.edu 0.12/0.33 % Model : x86_64 x86_64 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.12/0.33 % Memory : 8042.1875MB 0.12/0.33 % OS : Linux 3.10.0-693.el7.x86_64 0.12/0.33 % CPULimit : 180 0.12/0.33 % DateTime : Thu Aug 29 09:25:39 EDT 2019 0.12/0.33 % CPUTime : 0.56/0.76 % SZS status Theorem 0.56/0.76 0.56/0.76 % SZS output start Proof 0.56/0.76 Take the following subset of the input axioms: 0.56/0.76 fof(co1, conjecture, p(enc(pp, a))). 0.56/0.76 fof(enc_dec_cancel, axiom, ![U, V]: V=enc(i(U), enc(U, V))). 0.56/0.76 fof(encrypt_a_stored_comms_key, axiom, ![W, U, V]: ((p(U) & (p(W) & p(V))) => p(enc(enc(i(tmk), V), enc(i(tc), U))))). 0.56/0.76 fof(encrypt_clear_key_as_Tcomms_key, axiom, ![W, U, V]: (p(enc(tc, U)) <= (p(U) & (p(W) & p(V))))). 0.56/0.76 fof(intruder_knows_1, axiom, p(enc(tmk, pp))). 0.56/0.76 fof(intruder_knows_4, axiom, p(enc(lp, t2))). 0.56/0.76 fof(intruder_knows_8, axiom, p(a)). 0.56/0.76 0.56/0.76 Now clausify the problem and encode Horn clauses using encoding 3 of 0.56/0.76 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.56/0.76 We repeatedly replace C & s=t => u=v by the two clauses: 0.56/0.76 fresh(y, y, x1...xn) = u 0.56/0.76 C => fresh(s, t, x1...xn) = v 0.56/0.76 where fresh is a fresh function symbol and x1..xn are the free 0.56/0.76 variables of u and v. 0.56/0.76 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.56/0.76 input problem has no model of domain size 1). 0.56/0.76 0.56/0.76 The encoding turns the above axioms into the following unit equations and goals: 0.56/0.76 0.56/0.76 Axiom 1 (encrypt_a_stored_comms_key): fresh11(X, X, Y, Z) = true. 0.56/0.76 Axiom 2 (encrypt_a_stored_comms_key): fresh10(X, X, Y, Z) = fresh11(p(Y), true, Y, Z). 0.56/0.76 Axiom 3 (encrypt_a_stored_comms_key): fresh9(X, X, Y, Z) = fresh10(p(Z), true, Y, Z). 0.56/0.76 Axiom 4 (encrypt_clear_key_as_Tcomms_key): fresh2(X, X, Y) = p(enc(tc, Y)). 0.56/0.76 Axiom 5 (encrypt_clear_key_as_Tcomms_key): fresh34(X, X, Y) = true. 0.56/0.76 Axiom 6 (encrypt_clear_key_as_Tcomms_key): fresh33(X, X, Y, Z) = fresh34(p(Y), true, Y). 0.56/0.76 Axiom 7 (intruder_knows_4): p(enc(lp, t2)) = true. 0.56/0.76 Axiom 8 (encrypt_clear_key_as_Tcomms_key): fresh33(p(X), true, Y, Z) = fresh2(p(Z), true, Y). 0.56/0.76 Axiom 9 (intruder_knows_8): p(a) = true. 0.56/0.76 Axiom 10 (intruder_knows_1): p(enc(tmk, pp)) = true. 0.56/0.76 Axiom 11 (enc_dec_cancel): X = enc(i(Y), enc(Y, X)). 0.56/0.76 Axiom 12 (encrypt_a_stored_comms_key): fresh9(p(X), true, Y, Z) = p(enc(enc(i(tmk), Z), enc(i(tc), Y))). 0.56/0.76 0.56/0.76 Goal 1 (co1): p(enc(pp, a)) = true. 0.56/0.76 Proof: 0.56/0.76 p(enc(pp, a)) 0.56/0.76 = { by axiom 11 (enc_dec_cancel) } 0.56/0.76 p(enc(enc(i(tmk), enc(tmk, pp)), a)) 0.56/0.76 = { by axiom 11 (enc_dec_cancel) } 0.56/0.76 p(enc(enc(i(tmk), enc(tmk, pp)), enc(i(tc), enc(tc, a)))) 0.56/0.76 = { by axiom 12 (encrypt_a_stored_comms_key) } 0.56/0.76 fresh9(p(enc(lp, t2)), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 7 (intruder_knows_4) } 0.56/0.76 fresh9(true, true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 3 (encrypt_a_stored_comms_key) } 0.56/0.76 fresh10(p(enc(tmk, pp)), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 10 (intruder_knows_1) } 0.56/0.76 fresh10(true, true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 2 (encrypt_a_stored_comms_key) } 0.56/0.76 fresh11(p(enc(tc, a)), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 4 (encrypt_clear_key_as_Tcomms_key) } 0.56/0.76 fresh11(fresh2(true, true, a), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 7 (intruder_knows_4) } 0.56/0.76 fresh11(fresh2(p(enc(lp, t2)), true, a), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 8 (encrypt_clear_key_as_Tcomms_key) } 0.56/0.76 fresh11(fresh33(p(enc(lp, t2)), true, a, enc(lp, t2)), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 7 (intruder_knows_4) } 0.56/0.76 fresh11(fresh33(true, true, a, enc(lp, t2)), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 6 (encrypt_clear_key_as_Tcomms_key) } 0.56/0.76 fresh11(fresh34(p(a), true, a), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 9 (intruder_knows_8) } 0.56/0.76 fresh11(fresh34(true, true, a), true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 5 (encrypt_clear_key_as_Tcomms_key) } 0.56/0.76 fresh11(true, true, enc(tc, a), enc(tmk, pp)) 0.56/0.76 = { by axiom 1 (encrypt_a_stored_comms_key) } 0.56/0.76 true 0.56/0.76 % SZS output end Proof 0.56/0.76 0.56/0.76 RESULT: Theorem (the conjecture is true). 0.61/0.77 EOF