let S1, S2 be non empty ManySortedSign ; 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; 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; ( 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
and
A2:
A2 is gate`2=den
and
A3:
the Sorts of A1 tolerates the Sorts of A2
; A1 +* A2 is gate`2=den
A4:
the Charact of (A1 +* A2) = the Charact of A1 +* the Charact of A2
by A3, Def4;
let g be set ; CIRCCOMB:def 10 ( g in the carrier' of (S1 +* S2) implies g = [(g `1),( the Charact of (A1 +* A2) . g)] )
A5:
dom the Charact of A1 = the carrier' of S1
by PARTFUN1:def 2;
A6:
dom the Charact of A2 = the carrier' of S2
by PARTFUN1:def 2;
A7:
the carrier' of (S1 +* S2) = the carrier' of S1 \/ the carrier' of S2
by Def2;
assume
g in the carrier' of (S1 +* S2)
; g = [(g `1),( the Charact of (A1 +* A2) . g)]
then A8:
( g in the carrier' of S1 or g in the carrier' of S2 )
by A7, XBOOLE_0:def 3;
the Charact of A1 tolerates the Charact of A2
by A1, A2, Th56;
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, A2, A4, A5, A6, A8, Def10, FUNCT_4:13, FUNCT_4:15;
hence
g = [(g `1),( the Charact of (A1 +* A2) . g)]
; verum