let S1, S2 be non empty ManySortedSign ; :: thesis: for A1 being non-empty MSAlgebra of S1
for A2 being non-empty MSAlgebra of S2 st A1 is gate`2=den & A2 is gate`2=den & the Sorts of A1 tolerates the Sorts of A2 holds
A1 +* A2 is gate`2=den

let A1 be non-empty MSAlgebra of S1; :: thesis: for A2 being non-empty MSAlgebra of S2 st A1 is gate`2=den & A2 is gate`2=den & the Sorts of A1 tolerates the Sorts of A2 holds
A1 +* A2 is gate`2=den

let A2 be non-empty MSAlgebra of S2; :: thesis: ( A1 is gate`2=den & A2 is gate`2=den & the Sorts of A1 tolerates the Sorts of A2 implies A1 +* A2 is gate`2=den )
set A = A1 +* A2;
set S = S1 +* S2;
assume that
A1: ( A1 is gate`2=den & A2 is gate`2=den ) and
A2: the Sorts of A1 tolerates the Sorts of A2 ; :: thesis: A1 +* A2 is gate`2=den
A3: the Charact of (A1 +* A2) = the Charact of A1 +* the Charact of A2 by A2, Def4;
A4: ( dom the Charact of A1 = the carrier' of S1 & dom the Charact of A2 = the carrier' of S2 ) by PBOOLE:def 3;
A5: the Charact of A1 tolerates the Charact of A2 by A1, Th56;
let g be set ; :: according to CIRCCOMB:def 10 :: thesis: ( g in the carrier' of (S1 +* S2) implies g = [(g `1 ),(the Charact of (A1 +* A2) . g)] )
assume A6: g in the carrier' of (S1 +* S2) ; :: thesis: g = [(g `1 ),(the Charact of (A1 +* A2) . g)]
the carrier' of (S1 +* S2) = the carrier' of S1 \/ the carrier' of S2 by Def2;
then ( g in the carrier' of S1 or g in the carrier' of S2 ) by A6, XBOOLE_0:def 3;
then ( ( the Charact of (A1 +* A2) . g = the Charact of A1 . g & [(g `1 ),(the Charact of A1 . g)] = g ) or ( the Charact of (A1 +* A2) . g = the Charact of A2 . g & [(g `1 ),(the Charact of A2 . g)] = g ) ) by A1, A3, A4, A5, Def10, FUNCT_4:14, FUNCT_4:16;
hence g = [(g `1 ),(the Charact of (A1 +* A2) . g)] ; :: thesis: verum