reserve o,m for set;
reserve C for Cartesian_category;
reserve a,b,c,d,e,s for Object of C;

theorem Th29:
  lambda(a)*lambda'(a) = id a & lambda'(a)*lambda(a) = id([1]C[x]a
  ) & rho(a)*rho'(a) = id a & rho'(a)*rho(a) = id(a[x][1]C)
proof
A1: (term a)*pr2([1]C,a) = pr1([1]C,a) by Th12;
A2: Hom(a,[1]C) <> {} & Hom(a,a) <> {} by Th13;
  hence id a = lambda(a)*lambda'(a) by Def10;
A3: Hom([1]C[x]a,a) <> {} by Th19;
  then (id a)*pr2([1]C,a) = pr2([1]C,a) by CAT_1:28;
  then <:term a,id a:>*pr2([1]C,a) = <:pr1([1]C,a),pr2([1]C,a):> by A2,A3,A1
,Th25;
  hence id([1]C[x]a) = lambda'(a)*lambda(a) by Th24;
  thus id a = rho(a)*rho'(a) by A2,Def10;
A4: (term a)*pr1(a,[1]C) = pr2(a,[1]C) by Th12;
A5: Hom(a[x][1]C,a) <> {} by Th19;
  then (id a)*pr1(a,[1]C) = pr1(a,[1]C) by CAT_1:28;
  then <:id a,term a:>*pr1(a,[1]C) = <:pr1(a,[1]C),pr2(a,[1]C):> by A2,A5,A4
,Th25;
  hence thesis by Th24;
end;
