theorem Th30:
  f1 absorbs g1 & f2 absorbs g2 iff |:f1,f2:| absorbs |:g1,g2:|
proof
  defpred P[set,set] means |:f1,f2:|.($1,|:g1,g2:|.($1,$2)) = $1;
  thus f1 absorbs g1 & f2 absorbs g2 implies |:f1,f2:| absorbs |:g1,g2:|
  proof
    assume
A1: for a1,b1 holds f1.(a1,g1.(a1,b1)) = a1;
    assume
A2: for a2,b2 holds f2.(a2,g2.(a2,b2)) = a2;
A3: for d1,d19 being Element of D1, d2,d29 being Element of D2 holds P[[d1
    ,d2],[d19,d29]]
    proof
      let a1,b1, a2,b2;
      thus |:f1,f2:|.([a1,a2],|:g1,g2:|.([a1,a2],[b1,b2])) = |:f1,f2:|.([a1,a2
      ],[g1.(a1,b1),g2.(a2,b2)]) by Th21
        .= [f1.(a1,g1.(a1,b1)),f2.(a2,g2.(a2,b2))] by Th21
        .= [a1,f2.(a2,g2.(a2,b2))] by A1
        .= [a1,a2] by A2;
    end;
    thus for a,b being Element of [:D1,D2:] holds P[a,b] from AuxCart2( A3);
  end;
  assume
A4: for a,b being Element of [:D1,D2:] holds |:f1,f2:|.(a,|:g1,g2:|.(a,b
  )) = a;
  thus for a1,b1 holds f1.(a1,g1.(a1,b1)) = a1
  proof
    set a2 = the Element of D2;
    let a1,b1;
    [a1,a2] = |:f1,f2:|.([a1,a2],|:g1,g2:|.([a1,a2],[b1,a2])) by A4
      .= |:f1,f2:|.([a1,a2],[g1.(a1,b1),g2.(a2,a2)]) by Th21
      .= [f1.(a1,g1.(a1,b1)),f2.(a2,g2.(a2,a2))] by Th21;
    hence thesis by XTUPLE_0:1;
  end;
  set a1 = the Element of D1;
  let a2,b2;
  [a1,a2] = |:f1,f2:|.([a1,a2],|:g1,g2:|.([a1,a2],[a1,b2])) by A4
    .= |:f1,f2:|.([a1,a2],[g1.(a1,a1),g2.(a2,b2)]) by Th21
    .= [f1.(a1,g1.(a1,a1)),f2.(a2,g2.(a2,b2))] by Th21;
  hence thesis by XTUPLE_0:1;
end;
