let S1, S2 be non empty ManySortedSign ; ( S1 tolerates S2 & InnerVertices S2 misses InputVertices S1 implies ( InputVertices S1 c= InputVertices (S1 +* S2) & InputVertices (S1 +* S2) = (InputVertices S1) \/ ((InputVertices S2) \ (InnerVertices S1)) ) )
set S = S1 +* S2;
set R = the ResultSort of (S1 +* S2);
set R1 = the ResultSort of S1;
set R2 = the ResultSort of S2;
assume that
A1:
S1 tolerates S2
and
A2:
InnerVertices S2 misses InputVertices S1
; ( InputVertices S1 c= InputVertices (S1 +* S2) & InputVertices (S1 +* S2) = (InputVertices S1) \/ ((InputVertices S2) \ (InnerVertices S1)) )
A3:
InnerVertices (S1 +* S2) = rng the ResultSort of (S1 +* S2)
;
( InnerVertices S1 = rng the ResultSort of S1 & InnerVertices S2 = rng the ResultSort of S2 )
;
then A4:
rng the ResultSort of (S1 +* S2) = (rng the ResultSort of S1) \/ (rng the ResultSort of S2)
by A1, A3, CIRCCOMB:11;
A5:
the carrier of (S1 +* S2) = the carrier of S1 \/ the carrier of S2
by CIRCCOMB:def 2;
A8:
InputVertices (S1 +* S2) c= (InputVertices S1) \/ (InputVertices S2)
by A1, CIRCCOMB:11;
let x be object ; TARSKI:def 3 ( not x in (InputVertices S1) \/ ((InputVertices S2) \ (InnerVertices S1)) or x in InputVertices (S1 +* S2) )
assume
x in (InputVertices S1) \/ ((InputVertices S2) \ (InnerVertices S1))
; x in InputVertices (S1 +* S2)
then A10:
( x in InputVertices S1 or x in (InputVertices S2) \ (rng the ResultSort of S1) )
by XBOOLE_0:def 3;
then A11:
x in the carrier of (S1 +* S2)
by A5, XBOOLE_0:def 3;
( ( x in InputVertices S1 & not x in rng the ResultSort of S2 ) or ( x in InputVertices S2 & not x in rng the ResultSort of S1 ) )
by A2, A10, XBOOLE_0:3, XBOOLE_0:def 5;
then A12:
not x in rng the ResultSort of S2
by XBOOLE_0:def 5;
not x in rng the ResultSort of S1
by A10, XBOOLE_0:def 5;
then
not x in rng the ResultSort of (S1 +* S2)
by A4, A12, XBOOLE_0:def 3;
hence
x in InputVertices (S1 +* S2)
by A11, XBOOLE_0:def 5; verum