TPTP Problem File: NUM861=1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : NUM861=1 : TPTP v7.4.0. Released v4.1.0.
% Domain   : Number Theory
% Problem  : Upper bound replace maximum embedded in a context (2)
% Version  : Especial.
% English  : This is an abstraction of a problem to show equivalence of two 
%            given constraint models. More precisely, the task is to prove that
%            the minimal solutions of a certain constraint model are preserved
%            if the applications of the "maximum" function in it are replaced
%            by "upper bounds" only.

% Refs     : [Bau10] Baumgartner (2010), Email to G. Sutcliffe
%          : [BS09]  Baumgartner & Slaney (2009), Constraint Modelling: A C
% Source   : [Bau10]
% Names    :

% Status   : Theorem
% Rating   : 0.40 v7.4.0, 0.25 v7.3.0, 0.17 v7.1.0, 0.00 v7.0.0, 0.29 v6.4.0, 0.67 v6.3.0, 0.43 v6.2.0, 0.75 v6.1.0, 0.89 v6.0.0, 0.86 v5.5.0, 0.89 v5.4.0, 1.00 v5.3.0, 0.90 v5.2.0, 1.00 v5.0.0
% Syntax   : Number of formulae    :   17 (   0 unit;   8 type)
%            Number of atoms       :   24 (   2 equality)
%            Maximal formula depth :    8 (   5 average)
%            Number of connectives :   17 (   2   ~;   2   |;   4   &)
%                                         (   7 <=>;   2  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&)
%            Number of type conns  :   18 (   7   >;  11   *;   0   +;   0  <<)
%            Number of predicates  :   17 (  10 propositional; 0-3 arity)
%            Number of functors    :    4 (   1 constant; 0-2 arity)
%            Number of variables   :   27 (   0 sgn;  26   !;   1   ?)
%                                         (  27   :;   0  !>;   0  ?*)
%            Maximal term depth    :    3 (   1 average)
%            Arithmetic symbols    :   29 (   1 prd;   1 fun;   0 num;  27 var)
% SPC      : TF0_THM_EQU_ARI

% Comments : 
%------------------------------------------------------------------------------
tff(c_type,type,(
    c: $int )).

tff(summation_type,type,(
    summation: $int > $int )).

tff(ub_type,type,(
    ub: ( $int * $int * $int ) > $o )).

tff(model_max_type,type,(
    model_max: ( $int * $int * $int ) > $o )).

tff(model_ub_type,type,(
    model_ub: ( $int * $int * $int ) > $o )).

tff(minsol_model_max_type,type,(
    minsol_model_max: ( $int * $int * $int ) > $o )).

tff(minsol_model_ub_type,type,(
    minsol_model_ub: ( $int * $int * $int ) > $o )).

tff(max_type,type,(
    max: ( $int * $int ) > $int )).

%----summation(X) is meant as an abstraction of a certain summation term in
%----the original constraint problem
tff(summation_monotone,axiom,(
    ! [X: $int,Y: $int] :
      ( $lesseq(X,Y)
    <=> $lesseq(summation(X),summation(Y)) ) )).

%----Maximum function
tff(max_1,axiom,(
    ! [X: $int,Y: $int] :
      ( max(X,Y) = X
      | ~ $lesseq(Y,X) ) )).

tff(max_2,axiom,(
    ! [X: $int,Y: $int] :
      ( max(X,Y) = Y
      | ~ $lesseq(X,Y) ) )).

%----Z is an upper bound of Y and Z
tff(ub,axiom,(
    ! [X: $int,Y: $int,Z: $int] :
      ( ub(X,Y,Z)
    <=> ( $lesseq(X,Z)
        & $lesseq(Y,Z) ) ) )).

%----The model - version with max
tff(model_max_4,axiom,(
    ! [X: $int,Y: $int,N: $int] :
      ( model_max(X,Y,N)
    <=> $lesseq($sum(c,max(X,Y)),N) ) )).

%----The model - version with ub
tff(model_ub_4,axiom,(
    ! [X: $int,Y: $int,N: $int] :
      ( model_ub(X,Y,N)
    <=> ? [Z: $int] :
          ( ub(X,Y,Z)
          & $lesseq($sum(c,Z),N) ) ) )).

%----minimal solution, model_max
tff(minsol_model_max,axiom,(
    ! [X: $int,Y: $int,N: $int] :
      ( minsol_model_max(X,Y,N)
    <=> ( model_max(X,Y,N)
        & ! [Z: $int] :
            ( model_max(X,Y,Z)
           => $lesseq(N,Z) ) ) ) )).

%----minimal solution, model_ub
tff(minsol_model_ub,axiom,(
    ! [X: $int,Y: $int,N: $int] :
      ( minsol_model_ub(X,Y,N)
    <=> ( model_ub(X,Y,N)
        & ! [Z: $int] :
            ( model_ub(X,Y,Z)
           => $lesseq(N,Z) ) ) ) )).

%----Conjecture: minimal solutions of model_max and model_ub are the same:
tff(max_is_ub_1,conjecture,(
    ! [X: $int,Y: $int,Z: $int] :
      ( minsol_model_ub(X,Y,Z)
    <=> minsol_model_max(X,Y,Z) ) )).

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