reserve X for set,
        D for a_partition of X,
        TG for non empty TopologicalGroup;
reserve A for Subset of X;
reserve US for UniformSpace;
reserve R for Relation of X;
reserve SF for Subset-Family of X, A for Element of SF;

theorem Th35:
  id X c= block_Pervin_uniformity(A) &
  block_Pervin_uniformity(A) * block_Pervin_uniformity(A) c=
  block_Pervin_uniformity(A)
  proof
    thus id X c= block_Pervin_uniformity(A)
    proof
      let t be object;
      assume
A1:   t in id X;
      then consider a,b be object such that
A2:   t = [a,b] by RELAT_1:def 1;
A3:   a in X & a = b by A1,A2,RELAT_1:def 10;
      per cases;
      suppose a in A;
        then a in A & b in A by A1,A2,RELAT_1:def 10;
        then [a,b] in [:A,A:] by ZFMISC_1:def 2;
        hence thesis by A2,XBOOLE_0:def 3;
      end;
      suppose not a in A;
        then a in X \ A by A3,XBOOLE_0:def 5;
        then t in [:X \ A,X \ A:] by A2,A3,ZFMISC_1:def 2;
        hence thesis by XBOOLE_0:def 3;
      end;
    end;
    now
      let t be object;
      assume
A4:   t in (block_Pervin_uniformity(A)) * (block_Pervin_uniformity(A));
      then consider a,b be object such that
A5:   t = [a,b] by RELAT_1:def 1;
      [a,b] in {[x,y] where x,y is Element of X : ex z being Element of X st
        [x,z] in block_Pervin_uniformity(A) & [z,y] in
        block_Pervin_uniformity(A)} by A5,A4,UNIFORM2:3;
      then consider x,y be Element of X such that
A6:   [a,b] = [x,y] and
A7:   ex z being Element of X st [x,z] in block_Pervin_uniformity(A) &
        [z,y] in block_Pervin_uniformity(A);
      consider z being Element of X such that
A8:   [x,z] in block_Pervin_uniformity(A)  and
A9:   [z,y] in block_Pervin_uniformity(A) by A7;
      per cases;
      suppose
A10:    x in A;
        [x,z] in [:A,A:]
        proof
          per cases by A8,XBOOLE_0:def 3;
          suppose [x,z] in [:X \ A,X \ A:];
            then x in X \ A by ZFMISC_1:87;
            hence thesis by A10,XBOOLE_0:def 5;
          end;
          suppose [x,z] in [:A,A:];
            hence thesis;
          end;
        end; then
A11:    z in A by ZFMISC_1:87;
        [z,y] in [:A,A:]
        proof
          per cases by A9,XBOOLE_0:def 3;
          suppose [z,y] in [:X \ A,X \ A:];
            then z in X \ A & y in X by ZFMISC_1:87;
            hence thesis by A11,XBOOLE_0:def 5;
          end;
          suppose [z,y] in [:A,A:];
            hence thesis;
          end;
        end;
        then y in A by ZFMISC_1:87;
        then [x,y] in [:A,A:] by A10,ZFMISC_1:def 2;
        hence t in block_Pervin_uniformity(A) by A5,A6,XBOOLE_0:def 3;
      end;
      suppose
A12:    not x in A;
        per cases;
        suppose
          X is empty;
          hence t in block_Pervin_uniformity(A) by A9;
        end;
        suppose X is non empty; then
A13:      x in X \ A by A12,XBOOLE_0:def 5;
          [x,z] in [: X \ A,X \ A:]
          proof
            per cases by A8,XBOOLE_0:def 3;
            suppose [x,z] in [:X \ A,X \ A:];
              hence thesis;
            end;
            suppose [x,z] in [:A,A:];
              hence thesis by A12,ZFMISC_1:87;
            end;
          end; then
A14:      z in X \ A by ZFMISC_1:87;
          [z,y] in [:X \ A,X \ A:]
          proof
            per cases by A9,XBOOLE_0:def 3;
            suppose [z,y] in [:X \ A,X \ A:];
              hence thesis;
            end;
            suppose [z,y] in [:A,A:];
              then z in A & y in A by ZFMISC_1:87;
              hence thesis by A14,XBOOLE_0:def 5;
            end;
          end;
          then y in X \ A by ZFMISC_1:87;
          then [x,y] in [:X\ A,X \ A:] by A13,ZFMISC_1:def 2;
          hence t in block_Pervin_uniformity(A) by A5,A6,XBOOLE_0:def 3;
        end;
      end;
    end;
    hence thesis;
  end;
