0.03/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.03/0.13 % Command : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof 0.12/0.34 % Computer : n006.cluster.edu 0.12/0.34 % Model : x86_64 x86_64 0.12/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.12/0.34 % Memory : 8042.1875MB 0.12/0.34 % OS : Linux 3.10.0-693.el7.x86_64 0.12/0.34 % CPULimit : 1200 0.12/0.34 % WCLimit : 120 0.12/0.34 % DateTime : Wed Jul 14 14:39:55 EDT 2021 0.12/0.34 % CPUTime : 1.54/0.60 % SZS status Theorem 1.54/0.60 1.54/0.60 % SZS output start Proof 1.54/0.60 Take the following subset of the input axioms: 2.03/0.67 fof(axiom_46, axiom, ![X, Y, Q]: (elem(X, cons(Y, Q)) <=> (X=Y | elem(X, Q)))). 2.03/0.67 fof(conj, conjecture, ![X, Y, V, W]: ((![Z, Pid0]: (~setIn(Pid0, alive) <= elem(m_Down(Pid0), queue(host(Z)))) & (![Z, Pid0]: (elem(m_Halt(Pid0), queue(host(Z))) => ~leq(host(Z), host(Pid0))) & (![Z, Pid0, Pid20]: (~leq(host(Z), host(Pid0)) <= elem(m_Ack(Pid0, Z), queue(host(Pid20)))) & (![Z, Pid0]: (~setIn(Pid0, alive) <= (~setIn(Z, alive) & (leq(Pid0, Z) & host(Z)=host(Pid0)))) & (![Z, Pid0]: ((Pid0!=Z & host(Pid0)=host(Z)) => (~setIn(Pid0, alive) | ~setIn(Z, alive))) & (cons(m_Down(Y), V)=queue(host(X)) & (![Z, Pid0, Pid20, Pid30]: ((host(Pid20)=host(Pid0) & (host(Pid30)=host(Z) & (setIn(Pid20, alive) & (setIn(Z, alive) & host(Pid20)!=host(Z))))) => ~(elem(m_Down(Pid0), queue(host(Z))) & elem(m_Down(Pid30), queue(host(Pid20))))) & (![Z, Pid0]: (elem(m_Down(Pid0), queue(host(Z))) => host(Pid0)!=host(Z)) & ![Z, Pid0]: (setIn(Pid0, alive) => ~elem(m_Down(Pid0), queue(host(Z)))))))))))) => ((~leq(host(X), host(Y)) => (~((index(status, host(X))=norm & host(Y)=index(ldr, host(X))) | (index(status, host(X))=wait & host(index(elid, host(X)))=host(Y))) => ((![Z]: (host(Z)!=s(host(X)) => (host(Z)=host(X) => ![W0, X0]: (s(host(X))!=host(X0) => (host(X)!=host(X0) => ![Y0]: (~(elem(m_Down(Y0), V) & elem(m_Down(W0), queue(host(X0)))) <= (host(Z)!=host(X0) & (setIn(X0, alive) & (host(Y0)=host(X0) & (host(W0)=host(Z) & setIn(Z, alive)))))))))) <= ~leq(nbr_proc, host(X))) <= (elec_1=index(status, host(X)) & ![Z]: ((Z=host(Y) | setIn(Z, index(down, host(X)))) <= (~leq(host(X), Z) & leq(s(zero), Z))))))) <= setIn(X, alive)))). 2.03/0.67 2.03/0.67 Now clausify the problem and encode Horn clauses using encoding 3 of 2.03/0.67 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 2.03/0.67 We repeatedly replace C & s=t => u=v by the two clauses: 2.03/0.67 fresh(y, y, x1...xn) = u 2.03/0.67 C => fresh(s, t, x1...xn) = v 2.03/0.67 where fresh is a fresh function symbol and x1..xn are the free 2.03/0.67 variables of u and v. 2.03/0.67 A predicate p(X) is encoded as p(X)=true (this is sound, because the 2.03/0.67 input problem has no model of domain size 1). 2.03/0.67 2.03/0.67 The encoding turns the above axioms into the following unit equations and goals: 2.03/0.67 2.03/0.67 Axiom 1 (conj_1): host(z) = host(x). 2.03/0.67 Axiom 2 (conj_2): host(w0) = host(z). 2.03/0.67 Axiom 3 (conj_3): host(y0) = host(x0). 2.03/0.67 Axiom 4 (conj_7): setIn(x, alive) = true2. 2.03/0.67 Axiom 5 (conj_9): setIn(x0, alive) = true2. 2.03/0.67 Axiom 6 (conj_6): elem(m_Down(y0), v) = true2. 2.03/0.67 Axiom 7 (conj): cons(m_Down(y), v) = queue(host(x)). 2.03/0.67 Axiom 8 (conj_16): fresh40(X, X, Y, Z) = host(Y). 2.03/0.67 Axiom 9 (conj_5): elem(m_Down(w0), queue(host(x0))) = true2. 2.03/0.67 Axiom 10 (conj_16): fresh38(X, X, Y, Z, W) = host(W). 2.03/0.67 Axiom 11 (axiom_46_1): fresh32(X, X, Y, Z, W) = true2. 2.03/0.67 Axiom 12 (conj_16): fresh39(X, X, Y, Z, W, V) = fresh40(host(Z), host(Y), Y, W). 2.03/0.67 Axiom 13 (conj_16): fresh37(X, X, Y, Z, W, V) = fresh38(host(W), host(V), Y, Z, W). 2.03/0.67 Axiom 14 (axiom_46_1): fresh32(elem(X, Y), true2, X, Z, Y) = elem(X, cons(Z, Y)). 2.03/0.67 Axiom 15 (conj_16): fresh35(X, X, Y, Z, W, V) = fresh36(setIn(Y, alive), true2, Y, Z, W, V). 2.03/0.67 Axiom 16 (conj_16): fresh36(X, X, Y, Z, W, V) = fresh39(elem(m_Down(Z), queue(host(W))), true2, Y, Z, W, V). 2.03/0.67 Axiom 17 (conj_16): fresh35(setIn(X, alive), true2, Y, Z, X, W) = fresh37(elem(m_Down(W), queue(host(Y))), true2, Y, Z, X, W). 2.03/0.67 2.03/0.67 Lemma 18: host(x0) = host(x). 2.03/0.67 Proof: 2.03/0.67 host(x0) 2.03/0.67 = { by axiom 8 (conj_16) R->L } 2.03/0.67 fresh40(host(x0), host(x0), x0, x) 2.03/0.67 = { by axiom 3 (conj_3) R->L } 2.03/0.67 fresh40(host(y0), host(x0), x0, x) 2.03/0.67 = { by axiom 12 (conj_16) R->L } 2.03/0.67 fresh39(true2, true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 11 (axiom_46_1) R->L } 2.03/0.67 fresh39(fresh32(true2, true2, m_Down(y0), m_Down(y), v), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 6 (conj_6) R->L } 2.03/0.67 fresh39(fresh32(elem(m_Down(y0), v), true2, m_Down(y0), m_Down(y), v), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 14 (axiom_46_1) } 2.03/0.67 fresh39(elem(m_Down(y0), cons(m_Down(y), v)), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 7 (conj) } 2.03/0.67 fresh39(elem(m_Down(y0), queue(host(x))), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 16 (conj_16) R->L } 2.03/0.67 fresh36(true2, true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 5 (conj_9) R->L } 2.03/0.67 fresh36(setIn(x0, alive), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 15 (conj_16) R->L } 2.03/0.67 fresh35(true2, true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 4 (conj_7) R->L } 2.03/0.67 fresh35(setIn(x, alive), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 17 (conj_16) } 2.03/0.67 fresh37(elem(m_Down(w0), queue(host(x0))), true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 9 (conj_5) } 2.03/0.67 fresh37(true2, true2, x0, y0, x, w0) 2.03/0.67 = { by axiom 13 (conj_16) } 2.03/0.67 fresh38(host(x), host(w0), x0, y0, x) 2.03/0.67 = { by axiom 2 (conj_2) } 2.03/0.67 fresh38(host(x), host(z), x0, y0, x) 2.03/0.67 = { by axiom 1 (conj_1) } 2.03/0.67 fresh38(host(x), host(x), x0, y0, x) 2.03/0.67 = { by axiom 10 (conj_16) } 2.03/0.67 host(x) 2.03/0.67 2.03/0.67 Goal 1 (conj_19): host(z) = host(x0). 2.03/0.67 Proof: 2.03/0.67 host(z) 2.03/0.67 = { by axiom 1 (conj_1) } 2.03/0.67 host(x) 2.03/0.67 = { by lemma 18 R->L } 2.03/0.67 host(x0) 2.03/0.67 2.03/0.67 Goal 2 (conj_18): host(x) = host(x0). 2.03/0.67 Proof: 2.03/0.67 host(x) 2.03/0.67 = { by lemma 18 R->L } 2.03/0.67 host(x0) 2.03/0.67 % SZS output end Proof 2.03/0.67 2.03/0.67 RESULT: Theorem (the conjecture is true). 2.03/0.68 EOF