TPTP Problem File: GEO661+1.p

View Solutions - Solve Problem

%--------------------------------------------------------------------------
% File     : GEO661+1 : TPTP v9.3.1. Released v9.3.0.
% Domain   : Geometry (Tarskian)
% Problem  : Weakened Tarski geometry axioms
% Version  : [Hor20] axioms.
% English  : Tarski’s “weak-continuity” elementary geometry (TWCEG) is a
%            first-order finite axiomatization of Euclidean geometry.
%            There is no known proof of the consistency or independence of
%            TWCEG that uses a finite-domain model. If the "segment
%            construction" axiom of TWCEG with a slightly weaker axiom, an
%            elementary Euclidean geometry that is finitely satisfiable is
%            obtained.

% Refs     : [Tar59] Tarski (1959), What is Elementary Geometry?
%          : [Hor20] Horner (2020), A Conditionally Constructive Variant of
%          : [Hor25] Horner (2025), A Finite-Domain-Based Automated Proof o
% Source   : [Hor20]
% Names    :

% Status   : Satisfiable
% Rating   : 0.33 v9.3.0
% Syntax   : Number of formulae    :   11 (   1 unt;   0 def)
%            Number of atoms       :   44 (   5 equ)
%            Maximal formula atoms :    8 (   4 avg)
%            Number of connectives :   39 (   6   ~;   2   |;  22   &)
%                                         (   0 <=>;   9  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   17 (   9 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of predicates  :    3 (   2 usr;   0 prp; 2-4 aty)
%            Number of functors    :    0 (   0 usr;   0 con; --- aty)
%            Number of variables   :   54 (  46   !;   8   ?)
% SPC      : FOF_SAT_RFO_SEQ

% Comments : 
%--------------------------------------------------------------------------
%----A1 - Reflexivity axiom for equidistance
fof(reflexivity_for_equidistance,axiom,(
    ! [X,Y] : equidistant(X,Y,Y,X) )).

%----A2 - Transitivity axiom for equidistance
fof(transitivity_for_equidistance,axiom,(
    ! [X,Y,Z,V,V2,W] :
      ( ( equidistant(X,Y,Z,V)
        & equidistant(X,Y,V2,W) )
     => equidistant(Z,V,V2,W) ) )).

%----A3 - Identity axiom for equidistance
fof(identity_for_equidistance,axiom,(
    ! [X,Y,Z] :
      ( equidistant(X,Y,Z,Z)
     => X = Y ) )).

%----A4 - Segment construction axiom
% fof(segment_construction,axiom,(
%     ! [X,Y,A,B] :
%     ? [Z] :
%       ( between(X,Y,Z)
%       & equidistant(Y,Z,A,B) ) )).

%----A4' - Conditional segment construction
fof(segment_construction,axiom,(
    ! [X,Y,A,B] :
    ? [Z] :
      ( between(X,Y,Z)
     => equidistant(Y,Z,A,B) ) )).

%----A5 - Outer five-segment axiom
fof(outer_five_segment,axiom,(
    ! [X,Y,X1,Y1,Z,Z1,V,V1] :
      ( ( equidistant(X,Y,X1,Y1)
        & equidistant(Y,Z,Y1,Z1)
        & equidistant(X,V,X1,V1)
        & equidistant(Y,V,Y1,V1)
        & between(X,Y,Z)
        & between(X1,Y1,Z1) 
        & X != Y )
     => equidistant(Z,V,Z1,V1) ) )).

%----A6 - Identity axiom for betweenness
fof(identity_for_betweeness,axiom,(
    ! [X,Y] :
      ( between(X,Y,X)
     => X = Y ) )).

%----A7 - Inner Pasch axiom
fof(inner_pasch,axiom,(
    ! [X,U,Z,Y,V] :
      ( ( between(X,U,Z)
        & between(Y,V,Z) )
     => ? [A] :
          ( between(U,A,Y)
          & between(V,A,X) ) ) )).

%----A8 - Lower dimension axiom.
fof(lower_dimension,axiom,(
    ? [A,B,C] :
      ( ~ between(A,B,C)
      & ~ between(B,C,A)
      & ~ between(C,A,B) ) )).

%----A9 - Upper dimension axiom
fof(upper_dimension,axiom,(
    ! [X,W,V,Y,Z] :
      ( ( equidistant(X,W,X,V)
        & equidistant(Y,W,Y,V)
        & equidistant(Z,W,Z,V)
        & W !=V )
     => ( between(X,Y,Z)
        | between(Y,Z,X)
        | between(Z,X,Y)) ) )).

%----A10 - Euclid's axiom
fof(euclid,axiom,(
    ! [X,U,V,Y,Z] :
      ( ( between(X,U,V)
        & between(Y,U,Z)
        & X != U )
     => ? [A,B] :
          ( between(X,Y,A)
          & between(X,Z,B)
          & between(A,V,B) ) ) )).

%----A11 - Weakened continuity axiom
fof(continuity,axiom,(
    ! [U,V,V1,X,X1,W] :
      ( ( equidistant(U,V,U,V1)
        & equidistant(U,X,U,X1)
        & between(U,V,X)
        & between(V,W,X) )
     => ? [A] :
          ( between(V1,A,X1) 
          & equidistant(U,W,U,A) ) ) )).

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