reserve x,y for set;

theorem Th26:
  for A being non empty AltCatStr, B being non empty SubCatStr of
  A holds B is full iff for a1,a2 being Object of A, b1,b2 being Object of B st
  b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^>
proof
  let A be non empty AltCatStr, B be non empty SubCatStr of A;
  thus B is full implies for a1,a2 being Object of A, b1,b2 being Object of B
  st b1 = a1 & b2 = a2 holds <^b1,b2^> = <^a1,a2^> by ALTCAT_2:28;
A1: the carrier of B c= the carrier of A by ALTCAT_2:def 11;
A2: dom the Arrows of B = [:the carrier of B, the carrier of B:] by
PARTFUN1:def 2;
  assume
A3: for a1,a2 being Object of A, b1,b2 being Object of B st b1 = a1 & b2
  = a2 holds <^b1,b2^> = <^a1,a2^>;
A4: now
    let x be object;
    assume x in dom the Arrows of B;
    then consider b1,b2 being object such that
A5: b1 in the carrier of B & b2 in the carrier of B and
A6: x = [b1,b2] by ZFMISC_1:def 2;
    reconsider b1, b2 as Object of B by A5;
    reconsider a1 = b1, a2 = b2 as Object of A by A1;
    thus (the Arrows of B).x = <^b1,b2^> by A6
      .= <^a1,a2^> by A3
      .= (the Arrows of A).x by A6;
  end;
A7: dom the Arrows of A = [:the carrier of A, the carrier of A:] by
PARTFUN1:def 2;
  [:the carrier of A, the carrier of A:] /\ [:the carrier of B, the
  carrier of B:] = [:the carrier of B, the carrier of B:] by A1,XBOOLE_1:28
,ZFMISC_1:96;
  hence the Arrows of B = (the Arrows of A)||the carrier of B by A7,A2,A4,
FUNCT_1:46;
end;
