TPTP Axioms File: GEO007+0.ax


%------------------------------------------------------------------------------
% File     : GEO007+0 : TPTP v7.5.0. Bugfixed v6.4.0.
% Domain   : Geometry (Constructive)
% Axioms   : Ordered affine geometry
% Version  : [vPl98] axioms.
% English  :

% Refs     : [vPl98] von Plato (1998), A Constructive Theory of Ordered Aff
% Source   : [ILTP]
% Names    :

% Status   : Satisfiable
% Syntax   : Number of formulae    :   31 (   7 unit)
%            Number of atoms       :  102 (   0 equality)
%            Maximal formula depth :   13 (   6 average)
%            Number of connectives :   87 (  16   ~;  24   |;  25   &)
%                                         (   5 <=>;  17  =>;   0  <=;   0 <~>)
%                                         (   0  ~|;   0  ~&)
%            Number of predicates  :   12 (   0 propositional; 1-4 arity)
%            Number of functors    :    4 (   0 constant; 1-2 arity)
%            Number of variables   :   71 (   0 sgn;  71   !;   0   ?)
%            Maximal term depth    :    3 (   1 average)
% SPC      : 

% Comments :
% Bugfixes : v6.4.0 - Fixed oag8.
%------------------------------------------------------------------------------
%----Abbreviations
fof(apt_def,axiom,(
    ! [A,L] :
      ( apart_point_and_line(A,L)
    <=> ( left_apart_point(A,L)
        | left_apart_point(A,reverse_line(L)) ) ) )).

fof(con_def,axiom,(
    ! [L,M] :
      ( convergent_lines(L,M)
    <=> ( unequally_directed_lines(L,M)
        & unequally_directed_lines(L,reverse_line(M)) ) ) )).

fof(div_def,axiom,(
    ! [A,B,L] :
      ( divides_points(L,A,B)
    <=> ( ( left_apart_point(A,L)
          & left_apart_point(B,reverse_line(L)) )
        | ( left_apart_point(A,reverse_line(L))
          & left_apart_point(B,L) ) ) ) )).

fof(bf_def,axiom,(
    ! [L,A,B] :
      ( before_on_line(L,A,B)
    <=> ( distinct_points(A,B)
        & ~ ( left_apart_point(A,L)
            | left_apart_point(A,reverse_line(L)) )
        & ~ ( left_apart_point(B,L)
            | left_apart_point(B,reverse_line(L)) )
        & ~ unequally_directed_lines(L,line_connecting(A,B)) ) ) )).

fof(bet_def,axiom,(
    ! [L,A,B,C] :
      ( between_on_line(L,A,B,C)
    <=> ( ( before_on_line(L,A,B)
          & before_on_line(L,B,C) )
        | ( before_on_line(L,C,B)
          & before_on_line(L,B,A) ) ) ) )).

%----General axioms for the basic concepts
fof(oag1,axiom,(
    ! [A] : ~ distinct_points(A,A) )).

fof(oag2,axiom,(
    ! [A,B,C] :
      ( distinct_points(A,B)
     => ( distinct_points(A,C)
        | distinct_points(B,C) ) ) )).

fof(oag3,axiom,(
    ! [L] : ~ distinct_lines(L,L) )).

fof(oag4,axiom,(
    ! [L,M,N] :
      ( distinct_lines(L,M)
     => ( distinct_lines(L,N)
        | distinct_lines(M,N) ) ) )).

fof(oag5,axiom,(
    ! [L] : ~ unequally_directed_lines(L,L) )).

fof(oag6,axiom,(
    ! [L,M,N] :
      ( unequally_directed_lines(L,M)
     => ( unequally_directed_lines(L,N)
        | unequally_directed_lines(M,N) ) ) )).

fof(oag7,axiom,(
    ! [L,M,N] :
      ( ( unequally_directed_lines(L,M)
        & unequally_directed_lines(L,reverse_line(M)) )
     => ( ( unequally_directed_lines(L,N)
          & unequally_directed_lines(L,reverse_line(N)) )
        | ( unequally_directed_lines(M,N)
          & unequally_directed_lines(M,reverse_line(N)) ) ) ) )).

fof(oag8,axiom,(
    ! [L,M] :
      ( ( line(L)
        & line(M) )
     => ( unequally_directed_lines(L,M)
        | unequally_directed_lines(L,reverse_line(M)) ) ) )).

fof(oag9,axiom,(
    ! [L,M] :
      ( ( unequally_directed_lines(L,M)
        & unequally_directed_lines(L,reverse_line(M)) )
     => ( left_convergent_lines(L,M)
        | left_convergent_lines(L,reverse_line(M)) ) ) )).

fof(oag10,axiom,(
    ! [A,L] :
      ~ ( left_apart_point(A,L)
        | left_apart_point(A,reverse_line(L)) ) )).

fof(oag11,axiom,(
    ! [L,M] : ~ ( left_convergent_lines(L,M)
      | left_convergent_lines(L,reverse_line(M)) ) )).

%----Constructed objects
fof(oagco1,axiom,(
    ! [A,B] :
      ( ( point(A)
        & point(B)
        & distinct_points(A,B) )
     => line(line_connecting(A,B)) ) )).

fof(oagco2,axiom,(
    ! [L,M] :
      ( ( line(L)
        & line(M)
        & unequally_directed_lines(L,M)
        & unequally_directed_lines(L,reverse_line(M)) )
     => point(intersection_point(L,M)) ) )).

fof(oagco3,axiom,(
    ! [L,A] :
      ( ( point(A)
        & line(L) )
     => line(parallel_through_point(L,A)) ) )).

fof(oagco4,axiom,(
    ! [L] :
      ( line(L)
     => line(reverse_line(L)) ) )).

fof(oagco5,axiom,(
    ! [A,B] :
      ( distinct_points(A,B)
     => ( ~ apart_point_and_line(A,line_connecting(A,B))
        & ~ apart_point_and_line(B,line_connecting(A,B)) ) ) )).

fof(oagco6,axiom,(
    ! [L,M] :
      ( ( unequally_directed_lines(L,M)
        & unequally_directed_lines(L,reverse_line(M)) )
     => ( ~ apart_point_and_line(intersection_point(L,M),L)
        & ~ apart_point_and_line(intersection_point(L,M),M) ) ) )).

fof(oagco7,axiom,(
    ! [A,L] : ~ apart_point_and_line(A,parallel_through_point(L,A)) )).

fof(oagco8,axiom,(
    ! [L] : ~ distinct_lines(L,reverse_line(L)) )).

fof(oagco9,axiom,(
    ! [A,B] : ~ unequally_directed_lines(line_connecting(A,B),reverse_line(line_connecting(B,A))) )).

fof(oagco10,axiom,(
    ! [A,L] : ~ unequally_directed_lines(parallel_through_point(L,A),L) )).

%----Uniqueness axioms for the constructions
fof(oaguc1,axiom,(
    ! [A,B,L,M] :
      ( ( distinct_points(A,B)
        & distinct_lines(L,M) )
     => ( left_apart_point(A,L)
        | left_apart_point(B,L)
        | left_apart_point(A,M)
        | left_apart_point(B,M)
        | left_apart_point(A,reverse_line(L))
        | left_apart_point(B,reverse_line(L))
        | left_apart_point(A,reverse_line(M))
        | left_apart_point(B,reverse_line(M)) ) ) )).

fof(oaguc2,axiom,(
    ! [A,B,L] :
      ( ( distinct_points(A,B)
        & left_apart_point(A,L) )
     => ( left_apart_point(B,L)
        | left_convergent_lines(line_connecting(A,B),L) ) ) )).

%----Substitution axioms
fof(oagsub1,axiom,(
    ! [A,B,L] :
      ( left_apart_point(A,L)
     => ( distinct_points(A,B)
        | left_apart_point(B,L) ) ) )).

fof(oagsub2,axiom,(
    ! [A,L,M] :
      ( ( left_apart_point(A,L)
        & unequally_directed_lines(L,M) )
     => ( distinct_lines(L,M)
        | left_apart_point(A,reverse_line(M)) ) ) )).

fof(oagsub3,axiom,(
    ! [L,M,N] :
      ( left_convergent_lines(L,M)
     => ( unequally_directed_lines(M,N)
        | left_convergent_lines(L,N) ) ) )).

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