% inverseA.fol
axiom:fol:commutativity_of_*:
![X,Y]: *(X,Y) = *(Y,X).
axiom:fol:b_is_left_inverse_for_a:
*(b,a) = 1.
axiom:coherent:equal_is_symmetric:
![X,Y]: ( X = Y => Y = X).
axiom:coherent:equal_is_transitive:
![X,Y,Z]: ( (X = Y & Y = Z) => X= Z).
conjecture:fol:b_is_right_inverse_for_a:
?[Z]:*(a,Z) = 1.
The following snapshot captures a refutation (proof of conjecture) for this theory.
If we hit the proof button we get the following proof.
The proof is extracted from the refutation tree in Figure 1. Notice that the proof discovers that b is indeed a right inverse for a.
Now let us modify the theory a little.
% inverseB.folThis theory inverseB states more generally that if left inverses exist (2nd axiom) then right inverses exist (conjecture).
axiom:fol:commutativity_of_*:
![X,Y]: *(X,Y) = *(Y,X).
axiom:fol:existence_of_left_inverses:
![X]:?[Z]:*(Z,X) = 1.
axiom:coherent:equal_is_symmetric:
![X,Y]: ( X = Y => Y = X).
axiom:coherent:equal_is_transitive:
![X,Y,Z]: ( (X = Y & Y = Z) => X= Z).
conjecture:fol:existence_of_right_inverses:
![X]:?[Z]:*(X,Z) = 1.
Load inverseB.fol. Stepping through the inferences produces evidence that the geolog rules will generate an indefinite number of left inverses of left inverses (geolog rule 10) before using other rules involving those already created.
Experimenting with ?.. (∃ for new version) produces the following succesful refutation. If we limit to 3 new skolem constants (minimum) we get the following refutation.
The extracted proof is instructive. Let the reader extract the corresponding proof. Careful inspection of the proof reveals the detailed role of the 3 skolem constants.