
theorem Th34:
  for C being composable with_identities CategoryStr holds
  dom RelOb C = Ob C & rng RelOb C = Ob C
  proof
    let C be composable with_identities CategoryStr;
    per cases;
    suppose C is empty;
      then Ob C = {} & RelOb C = {};
      hence thesis;
    end;
    suppose
A1:   C is non empty;
      for x being object st x in Ob C holds x in dom RelOb C
      proof
        let x be object;
        assume
A2:     x in Ob C;
        then reconsider o = x as Object of C;
        reconsider f = o as morphism of C by A2;
        f is identity by A1,CAT_6:22;
        then
A3:     dom f = o & cod f = o by Th6;
        f in Hom(dom f,cod f) by A1,Th19;
        then [o,o] in RelOb C by A3;
        hence x in dom RelOb C by XTUPLE_0:def 12;
      end;
      then Ob C c= dom RelOb C by TARSKI:def 3;
      hence dom RelOb C = Ob C by XBOOLE_0:def 10;
      for x being object st x in Ob C holds x in rng RelOb C
      proof
        let x be object;
        assume
A4:     x in Ob C;
        then reconsider o = x as Object of C;
        reconsider f = o as morphism of C by A4;
        f is identity by A1,CAT_6:22;
        then
A5:     dom f = o & cod f = o by Th6;
        f in Hom(dom f,cod f) by A1,Th19;
        then [o,o] in RelOb C by A5;
        hence x in rng RelOb C by XTUPLE_0:def 13;
      end;
      then Ob C c= rng RelOb C by TARSKI:def 3;
      hence rng RelOb C = Ob C by XBOOLE_0:def 10;
    end;
  end;
