Article AFPROJ, MML version 4.99.1005

:: AFPROJ:th 1
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
      st b1 is non empty non trivial AffinSpace-like 2-dimensional AffinStruct &
         b2 = the carrier of b1
   holds b2 is being_plane(b1);

:: AFPROJ:th 2
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
      st b1 is non empty non trivial AffinSpace-like 2-dimensional AffinStruct &
         b2 is being_plane(b1)
   holds b2 = the carrier of b1;

:: AFPROJ:th 3
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
      st b1 is non empty non trivial AffinSpace-like 2-dimensional AffinStruct &
         b2 is being_plane(b1) &
         b3 is being_plane(b1)
   holds b2 = b3;

:: AFPROJ:th 4
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
      st b2 = the carrier of b1 & b2 is being_plane(b1)
   holds b1 is non empty non trivial AffinSpace-like 2-dimensional AffinStruct;

:: AFPROJ:th 5
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3, b4, b5 being Element of bool the carrier of b1
      st not b2 // b3 & b2 '||' b4 & b2 '||' b5 & b3 '||' b4 & b3 '||' b5 & b2 is being_line(b1) & b3 is being_line(b1) & b4 is being_plane(b1) & b5 is being_plane(b1)
   holds b4 '||' b5;

:: AFPROJ:th 6
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3, b4 being Element of bool the carrier of b1
      st b2 is being_plane(b1) & b3 '||' b2 & b2 '||' b4
   holds b3 '||' b4;

:: AFPROJ:funcnot 1 => AFPROJ:func 1
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func AfLines A1 -> Element of bool bool the carrier of a1 equals
    {b1 where b1 is Element of bool the carrier of a1: b1 is being_line(a1)};
end;

:: AFPROJ:def 1
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   AfLines b1 = {b2 where b2 is Element of bool the carrier of b1: b2 is being_line(b1)};

:: AFPROJ:funcnot 2 => AFPROJ:func 2
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func AfPlanes A1 -> Element of bool bool the carrier of a1 equals
    {b1 where b1 is Element of bool the carrier of a1: b1 is being_plane(a1)};
end;

:: AFPROJ:def 2
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   AfPlanes b1 = {b2 where b2 is Element of bool the carrier of b1: b2 is being_plane(b1)};

:: AFPROJ:th 7
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 in AfLines b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = b3 & b3 is being_line(b1);

:: AFPROJ:th 8
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 in AfPlanes b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = b3 & b3 is being_plane(b1);

:: AFPROJ:funcnot 3 => AFPROJ:func 3
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func LinesParallelity A1 -> symmetric transitive total Relation of AfLines a1,AfLines a1 equals
    {[b1,b2] where b1 is Element of bool the carrier of a1, b2 is Element of bool the carrier of a1: b1 is being_line(a1) & b2 is being_line(a1) & b1 '||' b2};
end;

:: AFPROJ:def 3
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   LinesParallelity b1 = {[b2,b3] where b2 is Element of bool the carrier of b1, b3 is Element of bool the carrier of b1: b2 is being_line(b1) & b3 is being_line(b1) & b2 '||' b3};

:: AFPROJ:funcnot 4 => AFPROJ:func 4
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func PlanesParallelity A1 -> symmetric transitive total Relation of AfPlanes a1,AfPlanes a1 equals
    {[b1,b2] where b1 is Element of bool the carrier of a1, b2 is Element of bool the carrier of a1: b1 is being_plane(a1) & b2 is being_plane(a1) & b1 '||' b2};
end;

:: AFPROJ:def 4
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   PlanesParallelity b1 = {[b2,b3] where b2 is Element of bool the carrier of b1, b3 is Element of bool the carrier of b1: b2 is being_plane(b1) & b3 is being_plane(b1) & b2 '||' b3};

:: AFPROJ:funcnot 5 => AFPROJ:func 5
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  let a2 be Element of bool the carrier of a1;
  assume a2 is being_line(a1);
  func LDir A2 -> Element of bool AfLines a1 equals
    Class(LinesParallelity a1,a2);
end;

:: AFPROJ:def 5
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
      st b2 is being_line(b1)
   holds LDir b2 = Class(LinesParallelity b1,b2);

:: AFPROJ:funcnot 6 => AFPROJ:func 6
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  let a2 be Element of bool the carrier of a1;
  assume a2 is being_plane(a1);
  func PDir A2 -> Element of bool AfPlanes a1 equals
    Class(PlanesParallelity a1,a2);
end;

:: AFPROJ:def 6
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
      st b2 is being_plane(b1)
   holds PDir b2 = Class(PlanesParallelity b1,b2);

:: AFPROJ:th 9
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
   st b2 is being_line(b1)
for b3 being set holds
      b3 in LDir b2
   iff
      ex b4 being Element of bool the carrier of b1 st
         b3 = b4 & b4 is being_line(b1) & b2 '||' b4;

:: AFPROJ:th 10
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
   st b2 is being_plane(b1)
for b3 being set holds
      b3 in PDir b2
   iff
      ex b4 being Element of bool the carrier of b1 st
         b3 = b4 & b4 is being_plane(b1) & b2 '||' b4;

:: AFPROJ:th 11
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
      st b2 is being_line(b1) & b3 is being_line(b1)
   holds    LDir b2 = LDir b3
   iff
      b2 // b3;

:: AFPROJ:th 12
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
      st b2 is being_line(b1) & b3 is being_line(b1)
   holds    LDir b2 = LDir b3
   iff
      b2 '||' b3;

:: AFPROJ:th 13
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
      st b2 is being_plane(b1) & b3 is being_plane(b1)
   holds    PDir b2 = PDir b3
   iff
      b2 '||' b3;

:: AFPROJ:funcnot 7 => AFPROJ:func 7
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func Dir_of_Lines A1 -> non empty set equals
    Class LinesParallelity a1;
end;

:: AFPROJ:def 7
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   Dir_of_Lines b1 = Class LinesParallelity b1;

:: AFPROJ:funcnot 8 => AFPROJ:func 8
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func Dir_of_Planes A1 -> non empty set equals
    Class PlanesParallelity a1;
end;

:: AFPROJ:def 8
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   Dir_of_Planes b1 = Class PlanesParallelity b1;

:: AFPROJ:th 14
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 in Dir_of_Lines b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = LDir b3 & b3 is being_line(b1);

:: AFPROJ:th 15
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 in Dir_of_Planes b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = PDir b3 & b3 is being_plane(b1);

:: AFPROJ:th 16
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   the carrier of b1 misses Dir_of_Lines b1;

:: AFPROJ:th 17
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st b1 is non empty non trivial AffinSpace-like 2-dimensional AffinStruct
   holds AfLines b1 misses Dir_of_Planes b1;

:: AFPROJ:th 18
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 in [:AfLines b1,{1}:]
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = [b3,1] & b3 is being_line(b1);

:: AFPROJ:th 19
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 in [:Dir_of_Planes b1,{2}:]
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = [PDir b3,2] & b3 is being_plane(b1);

:: AFPROJ:funcnot 9 => AFPROJ:func 9
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func ProjectivePoints A1 -> non empty set equals
    (the carrier of a1) \/ Dir_of_Lines a1;
end;

:: AFPROJ:def 9
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   ProjectivePoints b1 = (the carrier of b1) \/ Dir_of_Lines b1;

:: AFPROJ:funcnot 10 => AFPROJ:func 10
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func ProjectiveLines A1 -> non empty set equals
    [:AfLines a1,{1}:] \/ [:Dir_of_Planes a1,{2}:];
end;

:: AFPROJ:def 10
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   ProjectiveLines b1 = [:AfLines b1,{1}:] \/ [:Dir_of_Planes b1,{2}:];

:: AFPROJ:funcnot 11 => AFPROJ:func 11
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func Proj_Inc A1 -> Relation of ProjectivePoints a1,ProjectiveLines a1 means
    for b1, b2 being set holds
       [b1,b2] in it
    iff
       (for b3 being Element of bool the carrier of a1
             st b3 is being_line(a1) & b2 = [b3,1]
          holds (b1 in the carrier of a1 implies not b1 in b3) & b1 <> LDir b3 implies ex b3, b4 being Element of bool the carrier of a1 st
          b3 is being_line(a1) & b4 is being_plane(a1) & b1 = LDir b3 & b2 = [PDir b4,2] & b3 '||' b4);
end;

:: AFPROJ:def 11
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Relation of ProjectivePoints b1,ProjectiveLines b1 holds
      b2 = Proj_Inc b1
   iff
      for b3, b4 being set holds
         [b3,b4] in b2
      iff
         (for b5 being Element of bool the carrier of b1
               st b5 is being_line(b1) & b4 = [b5,1]
            holds (b3 in the carrier of b1 implies not b3 in b5) & b3 <> LDir b5 implies ex b5, b6 being Element of bool the carrier of b1 st
            b5 is being_line(b1) & b6 is being_plane(b1) & b3 = LDir b5 & b4 = [PDir b6,2] & b5 '||' b6);

:: AFPROJ:funcnot 12 => AFPROJ:func 12
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func Inc_of_Dir A1 -> Relation of Dir_of_Lines a1,Dir_of_Planes a1 means
    for b1, b2 being set holds
       [b1,b2] in it
    iff
       ex b3, b4 being Element of bool the carrier of a1 st
          b1 = LDir b3 & b2 = PDir b4 & b3 is being_line(a1) & b4 is being_plane(a1) & b3 '||' b4;
end;

:: AFPROJ:def 12
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Relation of Dir_of_Lines b1,Dir_of_Planes b1 holds
      b2 = Inc_of_Dir b1
   iff
      for b3, b4 being set holds
         [b3,b4] in b2
      iff
         ex b5, b6 being Element of bool the carrier of b1 st
            b3 = LDir b5 & b4 = PDir b6 & b5 is being_line(b1) & b6 is being_plane(b1) & b5 '||' b6;

:: AFPROJ:funcnot 13 => AFPROJ:func 13
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func IncProjSp_of A1 -> strict IncProjStr equals
    IncProjStr(#ProjectivePoints a1,ProjectiveLines a1,Proj_Inc a1#);
end;

:: AFPROJ:def 13
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   IncProjSp_of b1 = IncProjStr(#ProjectivePoints b1,ProjectiveLines b1,Proj_Inc b1#);

:: AFPROJ:funcnot 14 => AFPROJ:func 14
definition
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  func ProjHorizon A1 -> strict IncProjStr equals
    IncProjStr(#Dir_of_Lines a1,Dir_of_Planes a1,Inc_of_Dir a1#);
end;

:: AFPROJ:def 14
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct holds
   ProjHorizon b1 = IncProjStr(#Dir_of_Lines b1,Dir_of_Planes b1,Inc_of_Dir b1#);

:: AFPROJ:th 20
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 is Element of the Points of IncProjSp_of b1
   iff
      (b2 is not Element of the carrier of b1 implies ex b3 being Element of bool the carrier of b1 st
         b2 = LDir b3 & b3 is being_line(b1));

:: AFPROJ:th 21
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 is Element of the Points of ProjHorizon b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = LDir b3 & b3 is being_line(b1);

:: AFPROJ:th 22
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set
      st b2 is Element of the Points of ProjHorizon b1
   holds b2 is Element of the Points of IncProjSp_of b1;

:: AFPROJ:th 23
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 is Element of the Lines of IncProjSp_of b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         (b2 = [b3,1] & b3 is being_line(b1) or b2 = [PDir b3,2] & b3 is being_plane(b1));

:: AFPROJ:th 24
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set holds
      b2 is Element of the Lines of ProjHorizon b1
   iff
      ex b3 being Element of bool the carrier of b1 st
         b2 = PDir b3 & b3 is being_plane(b1);

:: AFPROJ:th 25
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being set
      st b2 is Element of the Lines of ProjHorizon b1
   holds [b2,2] is Element of the Lines of IncProjSp_of b1;

:: AFPROJ:th 26
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of the carrier of b1
for b3 being Element of bool the carrier of b1
for b4 being Element of the Points of IncProjSp_of b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b2 = b4 & [b3,1] = b5
   holds    b4 on b5
   iff
      b3 is being_line(b1) & b2 in b3;

:: AFPROJ:th 27
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of the carrier of b1
for b3 being Element of bool the carrier of b1
for b4 being Element of the Points of IncProjSp_of b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b2 = b4 & [PDir b3,2] = b5 & b3 is being_plane(b1)
   holds not b4 on b5;

:: AFPROJ:th 28
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
for b4 being Element of the Points of IncProjSp_of b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b4 = LDir b2 & [b3,1] = b5 & b2 is being_line(b1) & b3 is being_line(b1)
   holds    b4 on b5
   iff
      b2 '||' b3;

:: AFPROJ:th 29
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
for b4 being Element of the Points of IncProjSp_of b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b4 = LDir b2 & b5 = [PDir b3,2] & b2 is being_line(b1) & b3 is being_plane(b1)
   holds    b4 on b5
   iff
      b2 '||' b3;

:: AFPROJ:th 30
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
for b3 being Element of the Points of IncProjSp_of b1
for b4 being Element of the Lines of IncProjSp_of b1
      st b2 is being_line(b1) & b3 = LDir b2 & b4 = [b2,1]
   holds b3 on b4;

:: AFPROJ:th 31
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
for b4 being Element of the Points of IncProjSp_of b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b2 is being_line(b1) & b3 is being_plane(b1) & b2 c= b3 & b4 = LDir b2 & b5 = [PDir b3,2]
   holds b4 on b5;

:: AFPROJ:th 32
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3, b4 being Element of bool the carrier of b1
for b5 being Element of the Points of IncProjSp_of b1
for b6 being Element of the Lines of IncProjSp_of b1
      st b2 is being_plane(b1) & b3 c= b2 & b4 // b3 & b5 = LDir b4 & b6 = [PDir b2,2]
   holds b5 on b6;

:: AFPROJ:th 33
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
for b3 being Element of the Points of IncProjSp_of b1
for b4 being Element of the Lines of IncProjSp_of b1
      st b4 = [PDir b2,2] & b2 is being_plane(b1) & b3 on b4
   holds b3 is not Element of the carrier of b1;

:: AFPROJ:th 34
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
for b3 being Element of the Points of IncProjSp_of b1
for b4 being Element of the Lines of IncProjSp_of b1
      st b4 = [b2,1] & b2 is being_line(b1) & b3 on b4 & b3 is not Element of the carrier of b1
   holds b3 = LDir b2;

:: AFPROJ:th 35
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of bool the carrier of b1
for b3, b4 being Element of the Points of IncProjSp_of b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b5 = [b2,1] & b2 is being_line(b1) & b3 on b5 & b4 on b5 & b4 <> b3 & b3 is not Element of the carrier of b1
   holds b4 is Element of the carrier of b1;

:: AFPROJ:th 36
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
for b4 being Element of the Points of ProjHorizon b1
for b5 being Element of the Lines of ProjHorizon b1
      st b4 = LDir b2 & b5 = PDir b3 & b2 is being_line(b1) & b3 is being_plane(b1)
   holds    b4 on b5
   iff
      b2 '||' b3;

:: AFPROJ:th 37
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of the Points of ProjHorizon b1
for b3 being Element of the Points of IncProjSp_of b1
for b4 being Element of the Lines of ProjHorizon b1
for b5 being Element of the Lines of IncProjSp_of b1
      st b3 = b2 & b5 = [b4,2]
   holds    b2 on b4
   iff
      b3 on b5;

:: AFPROJ:th 38
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of the Points of ProjHorizon b1
for b4, b5 being Element of the Lines of ProjHorizon b1
      st b2 on b4 & b2 on b5 & b3 on b4 & b3 on b5 & b2 <> b3
   holds b4 = b5;

:: AFPROJ:th 39
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of the Lines of ProjHorizon b1 holds
   ex b3, b4, b5 being Element of the Points of ProjHorizon b1 st
      b3 on b2 & b4 on b2 & b5 on b2 & b3 <> b4 & b4 <> b5 & b5 <> b3;

:: AFPROJ:th 40
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of the Points of ProjHorizon b1 holds
ex b4 being Element of the Lines of ProjHorizon b1 st
   b2 on b4 & b3 on b4;

:: AFPROJ:th 41
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of the Points of ProjHorizon b1
for b4 being Element of the Lines of IncProjSp_of b1
      st b2 <> b3 & [b2,b4] in the Inc of IncProjSp_of b1 & [b3,b4] in the Inc of IncProjSp_of b1
   holds ex b5 being Element of the Lines of ProjHorizon b1 st
      b4 = [b5,2];

:: AFPROJ:th 42
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2 being Element of the Points of IncProjSp_of b1
for b3 being Element of the Lines of ProjHorizon b1
      st [b2,[b3,2]] in the Inc of IncProjSp_of b1
   holds b2 is Element of the Points of ProjHorizon b1;

:: AFPROJ:th 43
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3, b4 being Element of bool the carrier of b1
for b5, b6 being Element of the Lines of IncProjSp_of b1
      st b2 is being_plane(b1) & b3 is being_line(b1) & b4 is being_line(b1) & b3 c= b2 & b4 c= b2 & b5 = [b3,1] & b6 = [b4,1]
   holds ex b7 being Element of the Points of IncProjSp_of b1 st
      b7 on b5 & b7 on b6;

:: AFPROJ:th 44
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3, b4, b5, b6 being Element of the Points of ProjHorizon b1
for b7, b8, b9, b10 being Element of the Lines of ProjHorizon b1
      st b2 on b7 & b3 on b7 & b4 on b8 & b5 on b8 & b6 on b7 & b6 on b8 & b2 on b9 & b4 on b9 & b3 on b10 & b5 on b10 & not b6 on b9 & not b6 on b10 & b7 <> b8
   holds ex b11 being Element of the Points of ProjHorizon b1 st
      b11 on b9 & b11 on b10;

:: AFPROJ:funcreg 1
registration
  let a1 be non empty non trivial AffinSpace-like AffinStruct;
  cluster IncProjSp_of a1 -> strict linear partial up-2-dimensional up-3-rank Vebleian;
end;

:: AFPROJ:exreg 1
registration
  cluster strict linear partial up-2-dimensional up-3-rank Vebleian 2-dimensional IncProjStr;
end;

:: AFPROJ:funcreg 2
registration
  let a1 be non empty non trivial AffinSpace-like 2-dimensional AffinStruct;
  cluster IncProjSp_of a1 -> strict 2-dimensional;
end;

:: AFPROJ:th 45
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st IncProjSp_of b1 is 2-dimensional
   holds b1 is non empty non trivial AffinSpace-like 2-dimensional AffinStruct;

:: AFPROJ:th 46
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st b1 is not non empty non trivial AffinSpace-like 2-dimensional AffinStruct
   holds ProjHorizon b1 is linear partial up-2-dimensional up-3-rank Vebleian IncProjStr;

:: AFPROJ:th 47
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st ProjHorizon b1 is linear partial up-2-dimensional up-3-rank Vebleian IncProjStr
   holds b1 is not non empty non trivial AffinSpace-like 2-dimensional AffinStruct;

:: AFPROJ:th 48
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3 being Element of bool the carrier of b1
for b4, b5, b6, b7, b8, b9, b10 being Element of the carrier of b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2 <> b3 & b4 in b2 & b4 in b3 & b4 <> b5 & b4 <> b8 & b4 <> b6 & b4 <> b9 & b4 <> b7 & b4 <> b10 & b5 in b2 & b6 in b2 & b7 in b2 & b8 in b3 & b9 in b3 & b10 in b3 & b5,b9 // b6,b8 & b6,b10 // b7,b9 & (b5 <> b6 & b6 <> b7 implies b5 = b7)
   holds b5,b10 // b7,b8;

:: AFPROJ:th 49
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st IncProjSp_of b1 is Pappian
   holds b1 is Pappian;

:: AFPROJ:th 50
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
for b2, b3, b4 being Element of bool the carrier of b1
for b5, b6, b7, b8, b9, b10, b11 being Element of the carrier of b1
      st b5 in b2 & b5 in b3 & b5 in b4 & b5 <> b6 & b5 <> b7 & b5 <> b8 & b6 in b2 & b9 in b2 & b7 in b3 & b10 in b3 & b8 in b4 & b11 in b4 & b2 is being_line(b1) & b3 is being_line(b1) & b4 is being_line(b1) & b2 <> b3 & b2 <> b4 & b6,b7 // b9,b10 & b6,b8 // b9,b11 & (b5 = b9 or b6 = b9)
   holds b7,b8 // b10,b11;

:: AFPROJ:th 51
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st IncProjSp_of b1 is Desarguesian
   holds b1 is Desarguesian;

:: AFPROJ:th 52
theorem
for b1 being non empty non trivial AffinSpace-like AffinStruct
      st IncProjSp_of b1 is Fanoian
   holds b1 is Fanoian;