let S1, S2 be non empty Signature; ( S1 tolerates S2 implies S1 +* S2 is Extension of S1 )
assume that
A1:
the Arity of S1 tolerates the Arity of S2
and
A2:
the ResultSort of S1 tolerates the ResultSort of S2
; CIRCCOMB:def 1 S1 +* S2 is Extension of S1
set S = S1 +* S2;
the ResultSort of (S1 +* S2) = the ResultSort of S1 +* the ResultSort of S2
by CIRCCOMB:def 2;
then A3:
the ResultSort of S1 c= the ResultSort of (S1 +* S2)
by A2, FUNCT_4:28;
set f1 = id the carrier of S1;
set g1 = id the carrier' of S1;
thus
( dom (id the carrier of S1) = the carrier of S1 & dom (id the carrier' of S1) = the carrier' of S1 )
; PUA2MSS1:def 12,INSTALG1:def 2,ALGSPEC1:def 5 ( rng (id the carrier of S1) c= the carrier of (S1 +* S2) & rng (id the carrier' of S1) c= the carrier' of (S1 +* S2) & the ResultSort of S1 * (id the carrier of S1) = (id the carrier' of S1) * the ResultSort of (S1 +* S2) & ( for b1 being set
for b2 being set holds
( not b1 in the carrier' of S1 or not b2 = the Arity of S1 . b1 or b2 * (id the carrier of S1) = the Arity of (S1 +* S2) . ((id the carrier' of S1) . b1) ) ) )
dom the ResultSort of S1 = the carrier' of S1
by FUNCT_2:def 1;
then
the ResultSort of S1 = the ResultSort of (S1 +* S2) | the carrier' of S1
by A3, GRFUNC_1:23;
then A4:
the ResultSort of S1 = the ResultSort of (S1 +* S2) * (id the carrier' of S1)
by RELAT_1:65;
A5:
the carrier' of (S1 +* S2) = the carrier' of S1 \/ the carrier' of S2
by CIRCCOMB:def 2;
A6:
the carrier of (S1 +* S2) = the carrier of S1 \/ the carrier of S2
by CIRCCOMB:def 2;
thus
( rng (id the carrier of S1) c= the carrier of (S1 +* S2) & rng (id the carrier' of S1) c= the carrier' of (S1 +* S2) )
by A6, A5, XBOOLE_1:7; ( the ResultSort of S1 * (id the carrier of S1) = (id the carrier' of S1) * the ResultSort of (S1 +* S2) & ( for b1 being set
for b2 being set holds
( not b1 in the carrier' of S1 or not b2 = the Arity of S1 . b1 or b2 * (id the carrier of S1) = the Arity of (S1 +* S2) . ((id the carrier' of S1) . b1) ) ) )
rng the ResultSort of S1 c= the carrier of S1
;
hence
(id the carrier of S1) * the ResultSort of S1 = the ResultSort of (S1 +* S2) * (id the carrier' of S1)
by A4, RELAT_1:53; for b1 being set
for b2 being set holds
( not b1 in the carrier' of S1 or not b2 = the Arity of S1 . b1 or b2 * (id the carrier of S1) = the Arity of (S1 +* S2) . ((id the carrier' of S1) . b1) )
let o be set ; for b1 being set holds
( not o in the carrier' of S1 or not b1 = the Arity of S1 . o or b1 * (id the carrier of S1) = the Arity of (S1 +* S2) . ((id the carrier' of S1) . o) )
let p be Function; ( not o in the carrier' of S1 or not p = the Arity of S1 . o or p * (id the carrier of S1) = the Arity of (S1 +* S2) . ((id the carrier' of S1) . o) )
assume that
A7:
o in the carrier' of S1
and
A8:
p = the Arity of S1 . o
; p * (id the carrier of S1) = the Arity of (S1 +* S2) . ((id the carrier' of S1) . o)
A9:
dom the Arity of S1 = the carrier' of S1
by FUNCT_2:def 1;
then
p in rng the Arity of S1
by A7, A8, FUNCT_1:def 3;
then
p is FinSequence of the carrier of S1
by FINSEQ_1:def 11;
then
rng p c= the carrier of S1
by FINSEQ_1:def 4;
hence (id the carrier of S1) * p =
p
by RELAT_1:53
.=
( the Arity of S1 +* the Arity of S2) . o
by A1, A7, A8, A9, FUNCT_4:15
.=
the Arity of (S1 +* S2) . o
by CIRCCOMB:def 2
.=
the Arity of (S1 +* S2) . ((id the carrier' of S1) . o)
by A7, FUNCT_1:18
;
verum