## 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      :

% 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) ) ) )).

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