TPTP Problem File: KLE125+1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : KLE125+1 : TPTP v7.5.0. Released v4.0.0.
% Domain   : Kleene Algebra (Modal with Divergence)
% Problem  : Quasicommutation theorem
% Version  : [Hoe08] axioms.
% English  : If x quasicommutes over y, then x+y terminates if x and y
%            individually do.

% Refs     : [BD86]  Bachmair & Dershowitz (1986), Commutation, Transformat
%          : [Str07] Struth (2007), Reasoning Automatically about Terminati
%          : [Hoe08] Hoefner (2008), Email to G. Sutcliffe
% Source   : [Hoe08]
% Names    :

% Status   : Theorem
% Rating   : 1.00 v4.0.0
% Syntax   : Number of formulae    :   29 (  26 unit)
%            Number of atoms       :   33 (  32 equality)
%            Maximal formula depth :    5 (   3 average)
%            Number of connectives :    4 (   0   ~;   0   |;   0   &)
%                                         (   2 <=>;   2  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&)
%            Number of predicates  :    2 (   0 propositional; 2-2 arity)
%            Number of functors    :   16 (   2 constant; 0-2 arity)
%            Number of variables   :   49 (   0 sgn;  49   !;   0   ?)
%            Maximal term depth    :    6 (   3 average)
% SPC      : FOF_THM_RFO_SEQ

% Comments : An abstract version of a theorem in [BD86].
%          : Equational encoding
%------------------------------------------------------------------------------
%---Include axioms for modal Kleene algebra with divergence
include('Axioms/KLE001+0.ax').
%---Include axioms for Boolean domain/codomain
include('Axioms/KLE001+4.ax').
%---Include axioms for diamond and boxes
include('Axioms/KLE001+6.ax').
%---Include axioms for divergence
include('Axioms/KLE001+7.ax').
%------------------------------------------------------------------------------
fof(goals,conjecture,(
    ! [X0,X1] :
      ( addition(multiplication(X0,X1),multiplication(X1,star(addition(X1,X0)))) = multiplication(X1,star(addition(X1,X0)))
     => ( divergence(addition(X1,X0)) = zero
      <=> addition(divergence(X1),divergence(X0)) = zero ) ) )).

%------------------------------------------------------------------------------