Article PENCIL_4, MML version 4.99.1005

:: PENCIL_4:th 1
theorem
for b1, b2 being natural set
      st 1 <= b1 & b1 < b2 & 3 <= b2 & b2 <= b1 + 1
   holds 2 <= b1;

:: PENCIL_4:th 2
theorem
for b1 being finite set
for b2 being natural set
      st b2 <= card b1
   holds ex b3 being Element of bool b1 st
      card b3 = b2;

:: PENCIL_4:th 3
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3 being Subspace of b2 holds
   b3 is Subspace of (Omega). b2;

:: PENCIL_4:th 4
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3 being Subspace of (Omega). b2 holds
   b3 is Subspace of b2;

:: PENCIL_4:th 5
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3 being Subspace of b2 holds
   (Omega). b3 is Subspace of b2;

:: PENCIL_4:th 6
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2, b3 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
      st (Omega). b3 is Subspace of b2
   holds b3 is Subspace of b2;

:: PENCIL_4:funcnot 1 => PENCIL_4:func 1
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over a1;
  let a3, a4 be Subspace of a2;
  func segment(A3,A4) -> Element of bool Subspaces a2 means
    for b1 being strict Subspace of a2 holds
          b1 in it
       iff
          a3 is Subspace of b1 & b1 is Subspace of a4
    if a3 is Subspace of a4
    otherwise it = {};
end;

:: PENCIL_4:def 1
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3, b4 being Subspace of b2
for b5 being Element of bool Subspaces b2 holds
   (b3 is Subspace of b4 implies    (b5 = segment(b3,b4)
    iff
       for b6 being strict Subspace of b2 holds
             b6 in b5
          iff
             b3 is Subspace of b6 & b6 is Subspace of b4)) &
    (b3 is Subspace of b4 or    (b5 = segment(b3,b4)
    iff
       b5 = {}));

:: PENCIL_4:th 7
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3, b4, b5, b6 being Subspace of b2
      st b3 is Subspace of b4 & b5 is Subspace of b6 & (Omega). b3 = (Omega). b5 & (Omega). b4 = (Omega). b6
   holds segment(b3,b4) = segment(b5,b6);

:: PENCIL_4:funcnot 2 => PENCIL_4:func 2
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over a1;
  let a3, a4 be Subspace of a2;
  func pencil(A3,A4) -> Element of bool Subspaces a2 equals
    (segment(a3,a4)) \ {(Omega). a3,(Omega). a4};
end;

:: PENCIL_4:def 2
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3, b4 being Subspace of b2 holds
pencil(b3,b4) = (segment(b3,b4)) \ {(Omega). b3,(Omega). b4};

:: PENCIL_4:th 8
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed VectSpStr over b1
for b3, b4, b5, b6 being Subspace of b2
      st b3 is Subspace of b4 & b5 is Subspace of b6 & (Omega). b3 = (Omega). b5 & (Omega). b4 = (Omega). b6
   holds pencil(b3,b4) = pencil(b5,b6);

:: PENCIL_4:funcnot 3 => PENCIL_4:func 3
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over a1;
  let a3, a4 be Subspace of a2;
  let a5 be natural set;
  func pencil(A3,A4,A5) -> Element of bool (a5 Subspaces_of a2) equals
    (pencil(a3,a4)) /\ (a5 Subspaces_of a2);
end;

:: PENCIL_4:def 3
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being Subspace of b2
for b5 being natural set holds
   pencil(b3,b4,b5) = (pencil(b3,b4)) /\ (b5 Subspaces_of b2);

:: PENCIL_4:th 9
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
for b4, b5, b6 being Subspace of b2
      st b6 in pencil(b4,b5,b3)
   holds b4 is Subspace of b6 & b6 is Subspace of b5;

:: PENCIL_4:th 10
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
for b4, b5, b6, b7 being Subspace of b2
      st b4 is Subspace of b5 & b6 is Subspace of b7 & (Omega). b4 = (Omega). b6 & (Omega). b5 = (Omega). b7
   holds pencil(b4,b5,b3) = pencil(b6,b7,b3);

:: PENCIL_4:funcnot 4 => PENCIL_4:func 4
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over a1;
  let a3 be natural set;
  func A3 Pencils_of A2 -> Element of bool bool (a3 Subspaces_of a2) means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being Subspace of a2 st
             b2 is Subspace of b3 & (dim b2) + 1 = a3 & dim b3 = a3 + 1 & b1 = pencil(b2,b3,a3);
end;

:: PENCIL_4:def 4
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
for b4 being Element of bool bool (b3 Subspaces_of b2) holds
      b4 = b3 Pencils_of b2
   iff
      for b5 being set holds
            b5 in b4
         iff
            ex b6, b7 being Subspace of b2 st
               b6 is Subspace of b7 & (dim b6) + 1 = b3 & dim b7 = b3 + 1 & b5 = pencil(b6,b7,b3);

:: PENCIL_4:th 11
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 < dim b2
   holds b3 Pencils_of b2 is not empty;

:: PENCIL_4:th 12
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4, b5, b6 being Subspace of b2
for b7 being natural set
      st 1 <= b7 & b7 < dim b2 & (dim b3) + 1 = b7 & dim b4 = b7 + 1 & b5 in pencil(b3,b4,b7) & b6 in pencil(b3,b4,b7) & b5 <> b6
   holds b5 /\ b6 = (Omega). b3 & b5 + b6 = (Omega). b4;

:: PENCIL_4:th 13
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being Element of the carrier of b2
      st b3 <> 0. b2
   holds dim Lin {b3} = 1;

:: PENCIL_4:th 14
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being Subspace of b2
for b4 being Element of the carrier of b2
      st not b4 in b3
   holds dim (b3 + Lin {b4}) = (dim b3) + 1;

:: PENCIL_4:th 15
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being Subspace of b2
for b4, b5 being Element of the carrier of b2
      st not b4 in b3 &
         not b5 in b3 &
         b4 <> b5 &
         {b4,b5} is linearly-independent(b1, b2) &
         b3 /\ Lin {b4,b5} = (0). b2
   holds dim (b3 + Lin {b4,b5}) = (dim b3) + 2;

:: PENCIL_4:th 16
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being Subspace of b2
   st b3 is Subspace of b4
for b5 being natural set
   st 1 <= b5 & b5 < dim b2 & (dim b3) + 1 = b5 & dim b4 = b5 + 1
for b6 being Element of the carrier of b2
      st b6 in b4 & not b6 in b3
   holds b3 + Lin {b6} in pencil(b3,b4,b5);

:: PENCIL_4:th 17
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being Subspace of b2
   st b3 is Subspace of b4
for b5 being natural set
      st 1 <= b5 & b5 < dim b2 & (dim b3) + 1 = b5 & dim b4 = b5 + 1
   holds pencil(b3,b4,b5) is not trivial;

:: PENCIL_4:funcnot 5 => PENCIL_4:func 5
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over a1;
  let a3 be natural set;
  func PencilSpace(A2,A3) -> strict TopStruct equals
    TopStruct(#a3 Subspaces_of a2,a3 Pencils_of a2#);
end;

:: PENCIL_4:def 5
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set holds
   PencilSpace(b2,b3) = TopStruct(#b3 Subspaces_of b2,b3 Pencils_of b2#);

:: PENCIL_4:th 18
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st b3 <= dim b2
   holds PencilSpace(b2,b3) is not empty;

:: PENCIL_4:th 19
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 < dim b2
   holds PencilSpace(b2,b3) is not void;

:: PENCIL_4:th 20
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 < dim b2 & 3 <= dim b2
   holds PencilSpace(b2,b3) is not degenerated;

:: PENCIL_4:th 21
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 < dim b2
   holds PencilSpace(b2,b3) is with_non_trivial_blocks;

:: PENCIL_4:th 22
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 < dim b2
   holds PencilSpace(b2,b3) is identifying_close_blocks;

:: PENCIL_4:th 23
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 < dim b2 & 3 <= dim b2
   holds PencilSpace(b2,b3) is non empty non void non degenerated with_non_trivial_blocks identifying_close_blocks TopStruct;

:: PENCIL_4:funcnot 6 => PENCIL_4:func 6
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over a1;
  let a3, a4 be natural set;
  func SubspaceSet(A2,A3,A4) -> Element of bool bool (a3 Subspaces_of a2) means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being Subspace of a2 st
             dim b2 = a4 & b1 = a3 Subspaces_of b2;
end;

:: PENCIL_4:def 6
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set
for b5 being Element of bool bool (b3 Subspaces_of b2) holds
      b5 = SubspaceSet(b2,b3,b4)
   iff
      for b6 being set holds
            b6 in b5
         iff
            ex b7 being Subspace of b2 st
               dim b7 = b4 & b6 = b3 Subspaces_of b7;

:: PENCIL_4:th 24
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set
      st b4 <= dim b2
   holds SubspaceSet(b2,b3,b4) is not empty;

:: PENCIL_4:th 25
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2, b3 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
   st (Omega). b2 = (Omega). b3
for b4 being natural set holds
   b4 Subspaces_of b2 = b4 Subspaces_of b3;

:: PENCIL_4:th 26
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being Subspace of b2
for b4 being natural set
      st 1 <= b4 & b4 <= dim b2 & b4 Subspaces_of b2 c= b4 Subspaces_of b3
   holds (Omega). b2 = (Omega). b3;

:: PENCIL_4:funcnot 7 => PENCIL_4:func 7
definition
  let a1 be non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr;
  let a2 be non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over a1;
  let a3, a4 be natural set;
  func GrassmannSpace(A2,A3,A4) -> strict TopStruct equals
    TopStruct(#a3 Subspaces_of a2,SubspaceSet(a2,a3,a4)#);
end;

:: PENCIL_4:def 7
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set holds
GrassmannSpace(b2,b3,b4) = TopStruct(#b3 Subspaces_of b2,SubspaceSet(b2,b3,b4)#);

:: PENCIL_4:th 27
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set
      st b3 <= dim b2
   holds GrassmannSpace(b2,b3,b4) is not empty;

:: PENCIL_4:th 28
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set
      st b4 <= dim b2
   holds GrassmannSpace(b2,b3,b4) is not void;

:: PENCIL_4:th 29
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set
      st 1 <= b3 & b3 < b4 & b4 < dim b2
   holds GrassmannSpace(b2,b3,b4) is not degenerated;

:: PENCIL_4:th 30
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3, b4 being natural set
      st 1 <= b3 & b3 < b4 & b4 <= dim b2
   holds GrassmannSpace(b2,b3,b4) is with_non_trivial_blocks;

:: PENCIL_4:th 31
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 + 1 <= dim b2
   holds GrassmannSpace(b2,b3,b3 + 1) is identifying_close_blocks;

:: PENCIL_4:th 32
theorem
for b1 being non empty non degenerated right_complementable almost_left_invertible associative commutative well-unital distributive Abelian add-associative right_zeroed doubleLoopStr
for b2 being non empty right_complementable VectSp-like Abelian add-associative right_zeroed finite-dimensional VectSpStr over b1
for b3 being natural set
      st 1 <= b3 & b3 + 1 < dim b2
   holds GrassmannSpace(b2,b3,b3 + 1) is non empty non void non degenerated with_non_trivial_blocks identifying_close_blocks TopStruct;

:: PENCIL_4:funcnot 8 => PENCIL_4:func 8
definition
  let a1 be set;
  func PairSet A1 -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2, b3 being set st
             b2 in a1 & b3 in a1 & b1 = {b2,b3};
end;

:: PENCIL_4:def 8
theorem
for b1, b2 being set holds
   b2 = PairSet b1
iff
   for b3 being set holds
         b3 in b2
      iff
         ex b4, b5 being set st
            b4 in b1 & b5 in b1 & b3 = {b4,b5};

:: PENCIL_4:funcreg 1
registration
  let a1 be non empty set;
  cluster PairSet a1 -> non empty;
end;

:: PENCIL_4:funcnot 9 => PENCIL_4:func 9
definition
  let a1, a2 be set;
  func PairSet(A1,A2) -> set means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being set st
             b2 in a2 & b1 = {a1,b2};
end;

:: PENCIL_4:def 9
theorem
for b1, b2, b3 being set holds
   b3 = PairSet(b1,b2)
iff
   for b4 being set holds
         b4 in b3
      iff
         ex b5 being set st
            b5 in b2 & b4 = {b1,b5};

:: PENCIL_4:funcreg 2
registration
  let a1 be set;
  let a2 be non empty set;
  cluster PairSet(a1,a2) -> non empty;
end;

:: PENCIL_4:funcreg 3
registration
  let a1 be set;
  let a2 be non trivial set;
  cluster PairSet(a1,a2) -> non trivial;
end;

:: PENCIL_4:funcnot 10 => PENCIL_4:func 10
definition
  let a1 be set;
  let a2 be Element of bool bool a1;
  func PairSetFamily A2 -> Element of bool bool PairSet a1 means
    for b1 being set holds
          b1 in it
       iff
          ex b2 being set st
             ex b3 being Element of bool a1 st
                b2 in a1 & b3 in a2 & b1 = PairSet(b2,b3);
end;

:: PENCIL_4:def 10
theorem
for b1 being set
for b2 being Element of bool bool b1
for b3 being Element of bool bool PairSet b1 holds
      b3 = PairSetFamily b2
   iff
      for b4 being set holds
            b4 in b3
         iff
            ex b5 being set st
               ex b6 being Element of bool b1 st
                  b5 in b1 & b6 in b2 & b4 = PairSet(b5,b6);

:: PENCIL_4:funcreg 4
registration
  let a1 be non empty set;
  let a2 be non empty Element of bool bool a1;
  cluster PairSetFamily a2 -> non empty;
end;

:: PENCIL_4:funcnot 11 => PENCIL_4:func 11
definition
  let a1 be TopStruct;
  func VeroneseSpace A1 -> strict TopStruct equals
    TopStruct(#PairSet the carrier of a1,PairSetFamily the topology of a1#);
end;

:: PENCIL_4:def 11
theorem
for b1 being TopStruct holds
   VeroneseSpace b1 = TopStruct(#PairSet the carrier of b1,PairSetFamily the topology of b1#);

:: PENCIL_4:funcreg 5
registration
  let a1 be non empty TopStruct;
  cluster VeroneseSpace a1 -> non empty strict;
end;

:: PENCIL_4:funcreg 6
registration
  let a1 be non empty non void TopStruct;
  cluster VeroneseSpace a1 -> strict non void;
end;

:: PENCIL_4:funcreg 7
registration
  let a1 be non empty non void non degenerated TopStruct;
  cluster VeroneseSpace a1 -> strict non degenerated;
end;

:: PENCIL_4:funcreg 8
registration
  let a1 be non empty non void with_non_trivial_blocks TopStruct;
  cluster VeroneseSpace a1 -> strict with_non_trivial_blocks;
end;

:: PENCIL_4:funcreg 9
registration
  let a1 be identifying_close_blocks TopStruct;
  cluster VeroneseSpace a1 -> strict identifying_close_blocks;
end;

:: PENCIL_4:funcnot 12 => PENCIL_4:func 12
definition
  let a1 be non empty non void non degenerated with_non_trivial_blocks identifying_close_blocks TopStruct;
  redefine func VeroneseSpace a1 -> non empty strict non void non degenerated with_non_trivial_blocks identifying_close_blocks TopStruct;
end;