TPTP Axioms File: GEO001-0.ax


%--------------------------------------------------------------------------
% File     : GEO001-0 : TPTP v7.5.0. Bugfixed v2.5.0
% Domain   : Geometry (Tarskian)
% Axioms   : Tarski geometry axioms
% Version  : [MOW76] axioms.
% English  :

% Refs     : [Tar59] Tarski (1959), What is Elementary Geometry?
%          : [MOW76] McCharen et al. (1976), Problems and Experiments for a
%          : [Wos88] Wos (1988), Automated Reasoning - 33 Basic Research Pr
% Source   : [ANL]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of clauses    :   20 (   6 non-Horn;   6 unit;  17 RR)
%            Number of atoms      :   64 (   8 equality)
%            Maximal clause size  :    8 (   3 average)
%            Number of predicates :    3 (   0 propositional; 2-4 arity)
%            Number of functors   :    8 (   3 constant; 0-6 arity)
%            Number of variables  :   79 (   3 singleton)
%            Maximal term depth   :    2 (   1 average)
% SPC      : 

% Comments : These axioms are also used in [Wos88], p.206.
%          : outer_pasch : Skolem function arising from Outer Pasch Axiom (A7)
%            euclid1 : Skolem function arising from Euclid's Axiom (A8)
%            euclid2 : Skolem function arising from Euclid's Axiom (A8)
%            extend : Skolem function from Segment Construction (A10)
%            cont : Skolem function from Weakened Elementary Continuity (A13')
% Bugfixes : v2.5.0 - Fixed clause continuity1.
%--------------------------------------------------------------------------
cnf(identity_for_betweeness,axiom,
    ( ~ between(X,Y,X)
    | X = Y )).

cnf(transitivity_for_betweeness,axiom,
    ( ~ between(X,Y,V)
    | ~ between(Y,Z,V)
    | between(X,Y,Z) )).

cnf(connectivity_for_betweeness,axiom,
    ( ~ between(X,Y,Z)
    | ~ between(X,Y,V)
    | X = Y
    | between(X,Z,V)
    | between(X,V,Z) )).

cnf(reflexivity_for_equidistance,axiom,
    ( equidistant(X,Y,Y,X) )).

cnf(identity_for_equidistance,axiom,
    ( ~ equidistant(X,Y,Z,Z)
    | X = Y )).

cnf(transitivity_for_equidistance,axiom,
    ( ~ equidistant(X,Y,Z,V)
    | ~ equidistant(X,Y,V2,W)
    | equidistant(Z,V,V2,W) )).

cnf(outer_pasch1,axiom,
    ( ~ between(X,W,V)
    | ~ between(Y,V,Z)
    | between(X,outer_pasch(W,X,Y,Z,V),Y) )).

cnf(outer_pasch2,axiom,
    ( ~ between(X,W,V)
    | ~ between(Y,V,Z)
    | between(Z,W,outer_pasch(W,X,Y,Z,V)) )).

cnf(euclid1,axiom,
    ( ~ between(X,V,W)
    | ~ between(Y,V,Z)
    | X = V
    | between(X,Z,euclid1(W,X,Y,Z,V)) )).

cnf(euclid2,axiom,
    ( ~ between(X,V,W)
    | ~ between(Y,V,Z)
    | X = V
    | between(X,Y,euclid2(W,X,Y,Z,V)) )).

cnf(euclid3,axiom,
    ( ~ between(X,V,W)
    | ~ between(Y,V,Z)
    | X = V
    | between(euclid1(W,X,Y,Z,V),W,euclid2(W,X,Y,Z,V)) )).

cnf(outer_five_segment,axiom,
    ( ~ 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) )).

cnf(segment_construction1,axiom,
    ( between(X,Y,extension(X,Y,W,V)) )).

cnf(segment_construction2,axiom,
    ( equidistant(Y,extension(X,Y,W,V),W,V) )).

cnf(lower_dimension1,axiom,
    ( ~ between(lower_dimension_point_1,lower_dimension_point_2,lower_dimension_point_3) )).

cnf(lower_dimension2,axiom,
    ( ~ between(lower_dimension_point_2,lower_dimension_point_3,lower_dimension_point_1) )).

cnf(lower_dimension3,axiom,
    ( ~ between(lower_dimension_point_3,lower_dimension_point_1,lower_dimension_point_2) )).

cnf(upper_dimension,axiom,
    ( ~ equidistant(X,W,X,V)
    | ~ equidistant(Y,W,Y,V)
    | ~ equidistant(Z,W,Z,V)
    | between(X,Y,Z)
    | between(Y,Z,X)
    | between(Z,X,Y)
    | W = V )).

cnf(continuity1,axiom,
    ( ~ equidistant(V,X,V,X1)
    | ~ equidistant(V,Z,V,Z1)
    | ~ between(V,X,Z)
    | ~ between(X,Y,Z)
    | equidistant(V,Y,V,continuous(X,Y,Z,X1,Z1,V)) )).

cnf(continuity2,axiom,
    ( ~ equidistant(V,X,V,X1)
    | ~ equidistant(V,Z,V,Z1)
    | ~ between(V,X,Z)
    | ~ between(X,Y,Z)
    | between(X1,continuous(X,Y,Z,X1,Z1,V),Z1) )).

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