0.03/0.11 % 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 : n015.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 12:20:52 EDT 2019 0.12/0.33 % CPUTime : 0.56/0.77 % SZS status Unsatisfiable 0.56/0.77 0.56/0.77 % SZS output start Proof 0.56/0.77 Take the following subset of the input axioms: 0.56/0.77 fof(absorption, axiom, ![X, Y]: X=meet(X, join(X, Y))). 0.56/0.77 fof(distribution, axiom, ![X, Y, Z]: meet(X, join(Y, Z))=join(meet(Z, X), meet(Y, X))). 0.56/0.77 fof(prove_associativity_of_join, negated_conjecture, join(join(a, b), c)!=join(a, join(b, c))). 0.56/0.77 0.56/0.77 Now clausify the problem and encode Horn clauses using encoding 3 of 0.56/0.77 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.56/0.77 We repeatedly replace C & s=t => u=v by the two clauses: 0.56/0.77 fresh(y, y, x1...xn) = u 0.56/0.77 C => fresh(s, t, x1...xn) = v 0.56/0.77 where fresh is a fresh function symbol and x1..xn are the free 0.56/0.77 variables of u and v. 0.56/0.77 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.56/0.77 input problem has no model of domain size 1). 0.56/0.77 0.56/0.77 The encoding turns the above axioms into the following unit equations and goals: 0.56/0.77 0.56/0.77 Axiom 1 (distribution): meet(X, join(Y, Z)) = join(meet(Z, X), meet(Y, X)). 0.60/0.78 Axiom 2 (absorption): X = meet(X, join(X, Y)). 0.60/0.78 0.60/0.78 Lemma 3: meet(meet(X, Y), meet(Y, join(Z, X))) = meet(X, Y). 0.60/0.78 Proof: 0.60/0.78 meet(meet(X, Y), meet(Y, join(Z, X))) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 meet(meet(X, Y), join(meet(X, Y), meet(Z, Y))) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 meet(X, Y) 0.60/0.78 0.60/0.78 Lemma 4: meet(meet(X, Y), Y) = meet(X, Y). 0.60/0.78 Proof: 0.60/0.78 meet(meet(X, Y), Y) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 meet(meet(X, Y), meet(Y, join(Y, X))) 0.60/0.78 = { by lemma 3 } 0.60/0.78 meet(X, Y) 0.60/0.78 0.60/0.78 Lemma 5: meet(X, join(meet(Y, X), Z)) = meet(X, join(Y, Z)). 0.60/0.78 Proof: 0.60/0.78 meet(X, join(meet(Y, X), Z)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 join(meet(Z, X), meet(meet(Y, X), X)) 0.60/0.78 = { by lemma 4 } 0.60/0.78 join(meet(Z, X), meet(Y, X)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 meet(X, join(Y, Z)) 0.60/0.78 0.60/0.78 Lemma 6: meet(X, join(Y, meet(Z, X))) = meet(X, join(Y, Z)). 0.60/0.78 Proof: 0.60/0.78 meet(X, join(Y, meet(Z, X))) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 join(meet(meet(Z, X), X), meet(Y, X)) 0.60/0.78 = { by lemma 4 } 0.60/0.78 join(meet(Z, X), meet(Y, X)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 meet(X, join(Y, Z)) 0.60/0.78 0.60/0.78 Lemma 7: meet(X, meet(X, join(Z, Y))) = meet(X, join(Y, Z)). 0.60/0.78 Proof: 0.60/0.78 meet(X, meet(X, join(Z, Y))) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 meet(X, join(meet(Y, X), meet(Z, X))) 0.60/0.78 = { by lemma 5 } 0.60/0.78 meet(X, join(Y, meet(Z, X))) 0.60/0.78 = { by lemma 6 } 0.60/0.78 meet(X, join(Y, Z)) 0.60/0.78 0.60/0.78 Lemma 8: meet(X, join(Y, X)) = meet(X, X). 0.60/0.78 Proof: 0.60/0.78 meet(X, join(Y, X)) 0.60/0.78 = { by lemma 7 } 0.60/0.78 meet(X, meet(X, join(X, Y))) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 meet(X, X) 0.60/0.78 0.60/0.78 Lemma 9: meet(X, X) = X. 0.60/0.78 Proof: 0.60/0.78 meet(X, X) 0.60/0.78 = { by lemma 8 } 0.60/0.78 meet(X, join(X, X)) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 X 0.60/0.78 0.60/0.78 Lemma 10: meet(join(X, Y), join(X, Z)) = join(meet(Z, join(X, Y)), X). 0.60/0.78 Proof: 0.60/0.78 meet(join(X, Y), join(X, Z)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 join(meet(Z, join(X, Y)), meet(X, join(X, Y))) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 join(meet(Z, join(X, Y)), X) 0.60/0.78 0.60/0.78 Lemma 11: join(X, Y) = join(Y, X). 0.60/0.78 Proof: 0.60/0.78 join(X, Y) 0.60/0.78 = { by lemma 9 } 0.60/0.78 meet(join(X, Y), join(X, Y)) 0.60/0.78 = { by lemma 10 } 0.60/0.78 join(meet(Y, join(X, Y)), X) 0.60/0.78 = { by lemma 8 } 0.60/0.78 join(meet(Y, Y), X) 0.60/0.78 = { by lemma 9 } 0.60/0.78 join(Y, X) 0.60/0.78 0.60/0.78 Lemma 12: meet(join(X, Y), join(Z, X)) = join(X, meet(Z, join(X, Y))). 0.60/0.78 Proof: 0.60/0.78 meet(join(X, Y), join(Z, X)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 join(meet(X, join(X, Y)), meet(Z, join(X, Y))) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 join(X, meet(Z, join(X, Y))) 0.60/0.78 0.60/0.78 Lemma 13: join(X, meet(Y, X)) = X. 0.60/0.78 Proof: 0.60/0.78 join(X, meet(Y, X)) 0.60/0.78 = { by lemma 9 } 0.60/0.78 join(meet(X, X), meet(Y, X)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 meet(X, join(Y, X)) 0.60/0.78 = { by lemma 8 } 0.60/0.78 meet(X, X) 0.60/0.78 = { by lemma 9 } 0.60/0.78 X 0.60/0.78 0.60/0.78 Lemma 14: join(X, meet(join(X, Y), join(X, Y))) = join(X, Y). 0.60/0.78 Proof: 0.60/0.78 join(X, meet(join(X, Y), join(X, Y))) 0.60/0.78 = { by lemma 12 } 0.60/0.78 meet(join(X, Y), join(join(X, Y), X)) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 join(X, Y) 0.60/0.78 0.60/0.78 Lemma 15: join(X, X) = X. 0.60/0.78 Proof: 0.60/0.78 join(X, X) 0.60/0.78 = { by axiom 2 (absorption) } 0.60/0.78 join(X, meet(X, join(X, ?))) 0.60/0.78 = { by lemma 6 } 0.60/0.78 join(X, meet(X, join(X, meet(?, X)))) 0.60/0.78 = { by lemma 13 } 0.60/0.78 join(X, meet(join(X, meet(?, X)), join(X, meet(?, X)))) 0.60/0.78 = { by lemma 14 } 0.60/0.78 join(X, meet(?, X)) 0.60/0.78 = { by lemma 13 } 0.60/0.78 X 0.60/0.78 0.60/0.78 Lemma 16: meet(X, Y) = meet(Y, X). 0.60/0.78 Proof: 0.60/0.78 meet(X, Y) 0.60/0.78 = { by lemma 15 } 0.60/0.78 join(meet(X, Y), meet(X, Y)) 0.60/0.78 = { by axiom 1 (distribution) } 0.60/0.78 meet(Y, join(X, X)) 0.60/0.78 = { by lemma 15 } 0.60/0.78 meet(Y, X) 0.60/0.79 0.60/0.79 Lemma 17: meet(join(Z, X), join(Y, X)) = join(X, meet(Y, join(X, Z))). 0.60/0.79 Proof: 0.60/0.79 meet(join(Z, X), join(Y, X)) 0.60/0.79 = { by lemma 11 } 0.60/0.79 meet(join(X, Z), join(Y, X)) 0.60/0.79 = { by lemma 12 } 0.60/0.79 join(X, meet(Y, join(X, Z))) 0.60/0.79 0.60/0.79 Lemma 18: meet(X, join(Y, join(X, Z))) = X. 0.60/0.79 Proof: 0.60/0.79 meet(X, join(Y, join(X, Z))) 0.60/0.79 = { by lemma 11 } 0.60/0.79 meet(X, join(join(X, Z), Y)) 0.60/0.79 = { by lemma 7 } 0.60/0.79 meet(X, meet(X, join(Y, join(X, Z)))) 0.60/0.79 = { by lemma 9 } 0.60/0.79 meet(meet(X, X), meet(X, join(Y, join(X, Z)))) 0.60/0.79 = { by lemma 11 } 0.60/0.79 meet(meet(X, X), meet(X, join(Y, join(Z, X)))) 0.60/0.79 = { by lemma 15 } 0.60/0.79 meet(meet(X, X), join(meet(X, join(Y, join(Z, X))), meet(X, join(Y, join(Z, X))))) 0.60/0.79 = { by lemma 5 } 0.60/0.79 meet(meet(X, X), join(meet(meet(X, join(Y, join(Z, X))), meet(X, X)), meet(X, join(Y, join(Z, X))))) 0.60/0.79 = { by lemma 6 } 0.60/0.79 meet(meet(X, X), join(meet(meet(X, join(Y, join(Z, X))), meet(X, X)), meet(meet(X, join(Y, join(Z, X))), meet(X, X)))) 0.60/0.79 = { by lemma 3 } 0.60/0.79 meet(meet(meet(X, X), meet(X, join(Z, X))), join(meet(meet(X, join(Y, join(Z, X))), meet(X, X)), meet(meet(X, join(Y, join(Z, X))), meet(X, X)))) 0.60/0.79 = { by lemma 16 } 0.60/0.79 meet(meet(meet(X, X), meet(join(Z, X), X)), join(meet(meet(X, join(Y, join(Z, X))), meet(X, X)), meet(meet(X, join(Y, join(Z, X))), meet(X, X)))) 0.60/0.79 = { by lemma 16 } 0.60/0.79 meet(meet(meet(join(Z, X), X), meet(X, X)), join(meet(meet(X, join(Y, join(Z, X))), meet(X, X)), meet(meet(X, join(Y, join(Z, X))), meet(X, X)))) 0.60/0.79 = { by lemma 15 } 0.60/0.79 meet(meet(meet(join(Z, X), X), meet(X, X)), meet(meet(X, join(Y, join(Z, X))), meet(X, X))) 0.60/0.79 = { by lemma 16 } 0.60/0.79 meet(meet(meet(join(Z, X), X), meet(X, X)), meet(meet(X, X), meet(X, join(Y, join(Z, X))))) 0.60/0.79 = { by lemma 11 } 0.60/0.79 meet(meet(meet(join(Z, X), X), meet(X, X)), meet(meet(X, X), meet(X, join(join(Z, X), Y)))) 0.60/0.79 = { by axiom 1 (distribution) } 0.60/0.79 meet(meet(meet(join(Z, X), X), meet(X, X)), meet(meet(X, X), join(meet(Y, X), meet(join(Z, X), X)))) 0.60/0.79 = { by lemma 3 } 0.60/0.79 meet(meet(join(Z, X), X), meet(X, X)) 0.60/0.79 = { by lemma 16 } 0.60/0.79 meet(meet(X, X), meet(join(Z, X), X)) 0.60/0.79 = { by lemma 16 } 0.60/0.79 meet(meet(X, X), meet(X, join(Z, X))) 0.60/0.79 = { by lemma 3 } 0.60/0.79 meet(X, X) 0.60/0.79 = { by lemma 9 } 0.60/0.80 X 0.60/0.80 0.60/0.80 Lemma 19: join(X, join(Y, meet(X, join(Y, Z)))) = join(X, Y). 0.60/0.80 Proof: 0.60/0.80 join(X, join(Y, meet(X, join(Y, Z)))) 0.60/0.80 = { by axiom 2 (absorption) } 0.60/0.80 join(meet(X, join(X, Y)), join(Y, meet(X, join(Y, Z)))) 0.60/0.80 = { by lemma 12 } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), join(X, Y))) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), join(Y, X))) 0.60/0.80 = { by lemma 9 } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), join(Y, meet(X, X)))) 0.60/0.80 = { by lemma 8 } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), join(Y, meet(X, join(Y, X))))) 0.60/0.80 = { by lemma 17 } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), meet(join(X, Y), join(X, Y)))) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), meet(join(X, Y), join(Y, X)))) 0.60/0.80 = { by axiom 1 (distribution) } 0.60/0.80 join(meet(X, join(X, Y)), meet(join(Y, Z), join(meet(X, join(X, Y)), meet(Y, join(X, Y))))) 0.60/0.80 = { by lemma 12 } 0.60/0.80 meet(join(meet(X, join(X, Y)), meet(Y, join(X, Y))), join(join(Y, Z), meet(X, join(X, Y)))) 0.60/0.80 = { by axiom 1 (distribution) } 0.60/0.80 meet(meet(join(X, Y), join(Y, X)), join(join(Y, Z), meet(X, join(X, Y)))) 0.60/0.80 = { by lemma 16 } 0.60/0.80 meet(join(join(Y, Z), meet(X, join(X, Y))), meet(join(X, Y), join(Y, X))) 0.60/0.80 = { by axiom 2 (absorption) } 0.60/0.80 meet(join(join(Y, Z), X), meet(join(X, Y), join(Y, X))) 0.60/0.80 = { by lemma 11 } 0.60/0.80 meet(join(X, join(Y, Z)), meet(join(X, Y), join(Y, X))) 0.60/0.80 = { by lemma 11 } 0.60/0.80 meet(join(X, join(Y, Z)), meet(join(X, Y), join(X, Y))) 0.60/0.80 = { by lemma 9 } 0.60/0.80 meet(join(X, join(Y, Z)), join(X, Y)) 0.60/0.80 = { by lemma 10 } 0.60/0.80 join(meet(Y, join(X, join(Y, Z))), X) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(X, meet(Y, join(X, join(Y, Z)))) 0.60/0.80 = { by lemma 12 } 0.60/0.80 meet(join(X, join(Y, Z)), join(Y, X)) 0.60/0.80 = { by lemma 9 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), meet(join(X, join(Y, Z)), join(Y, X))) 0.60/0.80 = { by lemma 8 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, meet(join(X, join(Y, Z)), join(Y, X)))) 0.60/0.80 = { by lemma 11 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(meet(join(X, join(Y, Z)), join(Y, X)), Y)) 0.60/0.80 = { by lemma 10 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), meet(join(Y, X), join(Y, join(X, join(Y, Z))))) 0.60/0.80 = { by lemma 4 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), meet(meet(join(Y, X), join(Y, join(X, join(Y, Z)))), join(Y, join(X, join(Y, Z))))) 0.60/0.80 = { by lemma 10 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), meet(join(meet(join(X, join(Y, Z)), join(Y, X)), Y), join(Y, join(X, join(Y, Z))))) 0.60/0.80 = { by lemma 16 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), meet(join(Y, join(X, join(Y, Z))), join(meet(join(X, join(Y, Z)), join(Y, X)), Y))) 0.60/0.80 = { by lemma 12 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, join(X, join(Y, Z)))))) 0.60/0.80 = { by lemma 16 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, meet(join(Y, join(X, join(Y, Z))), meet(join(X, join(Y, Z)), join(Y, X))))) 0.60/0.80 = { by lemma 6 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, join(Y, join(X, join(Y, Z))))) 0.60/0.80 = { by lemma 9 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, meet(join(Y, join(X, join(Y, Z))), join(Y, join(X, join(Y, Z)))))) 0.60/0.80 = { by lemma 14 } 0.60/0.80 meet(meet(join(X, join(Y, Z)), join(Y, X)), join(Y, join(X, join(Y, Z)))) 0.60/0.80 = { by lemma 16 } 0.60/0.80 meet(join(Y, join(X, join(Y, Z))), meet(join(X, join(Y, Z)), join(Y, X))) 0.60/0.80 = { by lemma 11 } 0.60/0.80 meet(join(join(X, join(Y, Z)), Y), meet(join(X, join(Y, Z)), join(Y, X))) 0.60/0.80 = { by lemma 12 } 0.60/0.80 meet(join(join(X, join(Y, Z)), Y), join(X, meet(Y, join(X, join(Y, Z))))) 0.60/0.80 = { by lemma 18 } 0.60/0.80 meet(join(join(X, join(Y, Z)), Y), join(X, Y)) 0.60/0.80 = { by lemma 17 } 0.60/0.80 join(Y, meet(X, join(Y, join(X, join(Y, Z))))) 0.60/0.80 = { by lemma 18 } 0.60/0.80 join(Y, X) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(X, Y) 0.60/0.80 0.60/0.80 Lemma 20: join(join(X, Z), join(Y, Z)) = join(X, join(Y, Z)). 0.60/0.80 Proof: 0.60/0.80 join(join(X, Z), join(Y, Z)) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(join(X, Z), join(Z, Y)) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(join(Z, Y), join(X, Z)) 0.60/0.80 = { by lemma 19 } 0.60/0.80 join(join(Z, Y), join(X, join(Z, meet(X, join(Z, Y))))) 0.60/0.80 = { by lemma 12 } 0.60/0.80 join(join(Z, Y), join(X, meet(join(Z, Y), join(X, Z)))) 0.60/0.80 = { by lemma 19 } 0.60/0.80 join(join(Z, Y), X) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(X, join(Z, Y)) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(X, join(Y, Z)) 0.60/0.80 0.60/0.80 Goal 1 (prove_associativity_of_join): join(join(a, b), c) = join(a, join(b, c)). 0.60/0.80 Proof: 0.60/0.80 join(join(a, b), c) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(c, join(a, b)) 0.60/0.80 = { by lemma 20 } 0.60/0.80 join(join(c, b), join(a, b)) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(join(a, b), join(c, b)) 0.60/0.80 = { by lemma 20 } 0.60/0.80 join(a, join(c, b)) 0.60/0.80 = { by lemma 11 } 0.60/0.80 join(a, join(b, c)) 0.60/0.80 % SZS output end Proof 0.60/0.80 0.60/0.80 RESULT: Unsatisfiable (the axioms are contradictory). 0.60/0.80 EOF