defpred S1[ object , object ] means ex y1, y2, y3 being set st
( y1 in A & y2 in A & y3 in A & ( ( $1 = [1,<*y1*>] & $2 = [0,<*y1,y1*>] ) or ( $1 = [2,<*y1,y2,y3*>] & $2 = [0,<*y1,y3*>] ) ) );
defpred S2[ object , object ] means ex y1, y2, y3 being set st
( y1 in A & y2 in A & y3 in A & ( ( $1 = [1,<*y1*>] & $2 = {} ) or ( $1 = [2,<*y1,y2,y3*>] & $2 = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) );
A1: for x being object st x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] holds
ex y being object st
( y in [:{0},(2 -tuples_on A):] * & S2[x,y] )
proof
let x be object ; :: thesis: ( x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] implies ex y being object st
( y in [:{0},(2 -tuples_on A):] * & S2[x,y] ) )

assume A2: x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] ; :: thesis: ex y being object st
( y in [:{0},(2 -tuples_on A):] * & S2[x,y] )

per cases ( x in [:{1},(1 -tuples_on A):] or x in [:{2},(3 -tuples_on A):] ) by A2, XBOOLE_0:def 3;
suppose A3: x in [:{1},(1 -tuples_on A):] ; :: thesis: ex y being object st
( y in [:{0},(2 -tuples_on A):] * & S2[x,y] )

then x `2 in 1 -tuples_on A by MCART_1:10;
then A4: x `2 in { s where s is Element of A * : len s = 1 } by FINSEQ_2:def 4;
take y = {} ; :: thesis: ( y in [:{0},(2 -tuples_on A):] * & S2[x,y] )
thus y in [:{0},(2 -tuples_on A):] * by FINSEQ_1:49; :: thesis: S2[x,y]
consider s being Element of A * such that
A5: x `2 = s and
A6: len s = 1 by A4;
take y1 = s . 1; :: thesis: ex y2, y3 being set st
( y1 in A & y2 in A & y3 in A & ( ( x = [1,<*y1*>] & y = {} ) or ( x = [2,<*y1,y2,y3*>] & y = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) )

take y2 = s . 1; :: thesis: ex y3 being set st
( y1 in A & y2 in A & y3 in A & ( ( x = [1,<*y1*>] & y = {} ) or ( x = [2,<*y1,y2,y3*>] & y = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) )

take y3 = s . 1; :: thesis: ( y1 in A & y2 in A & y3 in A & ( ( x = [1,<*y1*>] & y = {} ) or ( x = [2,<*y1,y2,y3*>] & y = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) )
A7: s = <*y1*> by A6, FINSEQ_1:40;
then ( y1 in {y1} & rng s = {y1} ) by FINSEQ_1:39, TARSKI:def 1;
hence ( y1 in A & y2 in A & y3 in A ) ; :: thesis: ( ( x = [1,<*y1*>] & y = {} ) or ( x = [2,<*y1,y2,y3*>] & y = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) )
x `1 in {1} by A3, MCART_1:10;
then x `1 = 1 by TARSKI:def 1;
hence ( ( x = [1,<*y1*>] & y = {} ) or ( x = [2,<*y1,y2,y3*>] & y = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) by A3, A5, A7, MCART_1:21; :: thesis: verum
end;
suppose A8: x in [:{2},(3 -tuples_on A):] ; :: thesis: ex y being object st
( y in [:{0},(2 -tuples_on A):] * & S2[x,y] )

then x `2 in 3 -tuples_on A by MCART_1:10;
then x `2 in { s where s is Element of A * : len s = 3 } by FINSEQ_2:def 4;
then consider s being Element of A * such that
A9: x `2 = s and
A10: len s = 3 ;
set y1 = s . 1;
set y2 = s . 2;
set y3 = s . 3;
A11: s = <*(s . 1),(s . 2),(s . 3)*> by A10, FINSEQ_1:45;
then A12: rng s = {(s . 1),(s . 2),(s . 3)} by FINSEQ_2:128;
then reconsider B = A as non empty set ;
take y = <*[0,<*(s . 2),(s . 3)*>],[0,<*(s . 1),(s . 2)*>]*>; :: thesis: ( y in [:{0},(2 -tuples_on A):] * & S2[x,y] )
A13: s . 2 in {(s . 1),(s . 2),(s . 3)} by ENUMSET1:def 1;
A14: s . 1 in {(s . 1),(s . 2),(s . 3)} by ENUMSET1:def 1;
then A15: ( 0 in {0} & <*(s . 1),(s . 2)*> in 2 -tuples_on B ) by A13, A12, FINSEQ_2:101, TARSKI:def 1;
A16: s . 3 in {(s . 1),(s . 2),(s . 3)} by ENUMSET1:def 1;
then <*(s . 2),(s . 3)*> in 2 -tuples_on B by A13, A12, FINSEQ_2:101;
then reconsider z1 = [0,<*(s . 2),(s . 3)*>], z2 = [0,<*(s . 1),(s . 2)*>] as Element of [:{0},(2 -tuples_on B):] by A15, ZFMISC_1:87;
y = <*z1*> ^ <*z2*> by FINSEQ_1:def 9;
hence y in [:{0},(2 -tuples_on A):] * by FINSEQ_1:def 11; :: thesis: S2[x,y]
take s . 1 ; :: thesis: ex y2, y3 being set st
( s . 1 in A & y2 in A & y3 in A & ( ( x = [1,<*(s . 1)*>] & y = {} ) or ( x = [2,<*(s . 1),y2,y3*>] & y = <*[0,<*y2,y3*>],[0,<*(s . 1),y2*>]*> ) ) )

take s . 2 ; :: thesis: ex y3 being set st
( s . 1 in A & s . 2 in A & y3 in A & ( ( x = [1,<*(s . 1)*>] & y = {} ) or ( x = [2,<*(s . 1),(s . 2),y3*>] & y = <*[0,<*(s . 2),y3*>],[0,<*(s . 1),(s . 2)*>]*> ) ) )

take s . 3 ; :: thesis: ( s . 1 in A & s . 2 in A & s . 3 in A & ( ( x = [1,<*(s . 1)*>] & y = {} ) or ( x = [2,<*(s . 1),(s . 2),(s . 3)*>] & y = <*[0,<*(s . 2),(s . 3)*>],[0,<*(s . 1),(s . 2)*>]*> ) ) )
thus ( s . 1 in A & s . 2 in A & s . 3 in A ) by A14, A13, A16, A12; :: thesis: ( ( x = [1,<*(s . 1)*>] & y = {} ) or ( x = [2,<*(s . 1),(s . 2),(s . 3)*>] & y = <*[0,<*(s . 2),(s . 3)*>],[0,<*(s . 1),(s . 2)*>]*> ) )
x `1 in {2} by A8, MCART_1:10;
then x `1 = 2 by TARSKI:def 1;
hence ( ( x = [1,<*(s . 1)*>] & y = {} ) or ( x = [2,<*(s . 1),(s . 2),(s . 3)*>] & y = <*[0,<*(s . 2),(s . 3)*>],[0,<*(s . 1),(s . 2)*>]*> ) ) by A8, A9, A11, MCART_1:21; :: thesis: verum
end;
end;
end;
consider Ar being Function such that
A17: ( dom Ar = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & rng Ar c= [:{0},(2 -tuples_on A):] * ) and
A18: for x being object st x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] holds
S2[x,Ar . x] from FUNCT_1:sch 6(A1);
reconsider Ar = Ar as Function of ([:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):]),([:{0},(2 -tuples_on A):] *) by A17, FUNCT_2:2;
A19: for x being object st x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] holds
ex y being object st
( y in [:{0},(2 -tuples_on A):] & S1[x,y] )
proof
let x be object ; :: thesis: ( x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] implies ex y being object st
( y in [:{0},(2 -tuples_on A):] & S1[x,y] ) )

assume A20: x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] ; :: thesis: ex y being object st
( y in [:{0},(2 -tuples_on A):] & S1[x,y] )

per cases ( x in [:{1},(1 -tuples_on A):] or x in [:{2},(3 -tuples_on A):] ) by A20, XBOOLE_0:def 3;
suppose A21: x in [:{1},(1 -tuples_on A):] ; :: thesis: ex y being object st
( y in [:{0},(2 -tuples_on A):] & S1[x,y] )

then x `2 in 1 -tuples_on A by MCART_1:10;
then x `2 in { s where s is Element of A * : len s = 1 } by FINSEQ_2:def 4;
then consider s being Element of A * such that
A22: x `2 = s and
A23: len s = 1 ;
set y1 = s . 1;
set y2 = s . 1;
set y3 = s . 1;
A24: s = <*(s . 1)*> by A23, FINSEQ_1:40;
then A25: ( s . 1 in {(s . 1)} & rng s = {(s . 1)} ) by FINSEQ_1:39, TARSKI:def 1;
take y = [0,<*(s . 1),(s . 1)*>]; :: thesis: ( y in [:{0},(2 -tuples_on A):] & S1[x,y] )
reconsider B = A as non empty set by A24;
reconsider y1 = s . 1 as Element of B by A25;
( 0 in {0} & <*y1,y1*> in 2 -tuples_on B ) by FINSEQ_2:101, TARSKI:def 1;
hence y in [:{0},(2 -tuples_on A):] by ZFMISC_1:87; :: thesis: S1[x,y]
take y1 ; :: thesis: ex y2, y3 being set st
( y1 in A & y2 in A & y3 in A & ( ( x = [1,<*y1*>] & y = [0,<*y1,y1*>] ) or ( x = [2,<*y1,y2,y3*>] & y = [0,<*y1,y3*>] ) ) )

take s . 1 ; :: thesis: ex y3 being set st
( y1 in A & s . 1 in A & y3 in A & ( ( x = [1,<*y1*>] & y = [0,<*y1,y1*>] ) or ( x = [2,<*y1,(s . 1),y3*>] & y = [0,<*y1,y3*>] ) ) )

take s . 1 ; :: thesis: ( y1 in A & s . 1 in A & s . 1 in A & ( ( x = [1,<*y1*>] & y = [0,<*y1,y1*>] ) or ( x = [2,<*y1,(s . 1),(s . 1)*>] & y = [0,<*y1,(s . 1)*>] ) ) )
thus ( y1 in A & s . 1 in A & s . 1 in A ) by A25; :: thesis: ( ( x = [1,<*y1*>] & y = [0,<*y1,y1*>] ) or ( x = [2,<*y1,(s . 1),(s . 1)*>] & y = [0,<*y1,(s . 1)*>] ) )
x `1 in {1} by A21, MCART_1:10;
then x `1 = 1 by TARSKI:def 1;
hence ( ( x = [1,<*y1*>] & y = [0,<*y1,y1*>] ) or ( x = [2,<*y1,(s . 1),(s . 1)*>] & y = [0,<*y1,(s . 1)*>] ) ) by A21, A22, A24, MCART_1:21; :: thesis: verum
end;
suppose A26: x in [:{2},(3 -tuples_on A):] ; :: thesis: ex y being object st
( y in [:{0},(2 -tuples_on A):] & S1[x,y] )

then x `2 in 3 -tuples_on A by MCART_1:10;
then x `2 in { s where s is Element of A * : len s = 3 } by FINSEQ_2:def 4;
then consider s being Element of A * such that
A27: x `2 = s and
A28: len s = 3 ;
set y1 = s . 1;
set y2 = s . 2;
set y3 = s . 3;
A29: s = <*(s . 1),(s . 2),(s . 3)*> by A28, FINSEQ_1:45;
then A30: rng s = {(s . 1),(s . 2),(s . 3)} by FINSEQ_2:128;
then reconsider B = A as non empty set ;
take y = [0,<*(s . 1),(s . 3)*>]; :: thesis: ( y in [:{0},(2 -tuples_on A):] & S1[x,y] )
A31: ( s . 1 in {(s . 1),(s . 2),(s . 3)} & s . 3 in {(s . 1),(s . 2),(s . 3)} ) by ENUMSET1:def 1;
then ( 0 in {0} & <*(s . 1),(s . 3)*> in 2 -tuples_on B ) by A30, FINSEQ_2:101, TARSKI:def 1;
hence y in [:{0},(2 -tuples_on A):] by ZFMISC_1:87; :: thesis: S1[x,y]
take s . 1 ; :: thesis: ex y2, y3 being set st
( s . 1 in A & y2 in A & y3 in A & ( ( x = [1,<*(s . 1)*>] & y = [0,<*(s . 1),(s . 1)*>] ) or ( x = [2,<*(s . 1),y2,y3*>] & y = [0,<*(s . 1),y3*>] ) ) )

take s . 2 ; :: thesis: ex y3 being set st
( s . 1 in A & s . 2 in A & y3 in A & ( ( x = [1,<*(s . 1)*>] & y = [0,<*(s . 1),(s . 1)*>] ) or ( x = [2,<*(s . 1),(s . 2),y3*>] & y = [0,<*(s . 1),y3*>] ) ) )

take s . 3 ; :: thesis: ( s . 1 in A & s . 2 in A & s . 3 in A & ( ( x = [1,<*(s . 1)*>] & y = [0,<*(s . 1),(s . 1)*>] ) or ( x = [2,<*(s . 1),(s . 2),(s . 3)*>] & y = [0,<*(s . 1),(s . 3)*>] ) ) )
s . 2 in {(s . 1),(s . 2),(s . 3)} by ENUMSET1:def 1;
hence ( s . 1 in A & s . 2 in A & s . 3 in A ) by A31, A30; :: thesis: ( ( x = [1,<*(s . 1)*>] & y = [0,<*(s . 1),(s . 1)*>] ) or ( x = [2,<*(s . 1),(s . 2),(s . 3)*>] & y = [0,<*(s . 1),(s . 3)*>] ) )
x `1 in {2} by A26, MCART_1:10;
then x `1 = 2 by TARSKI:def 1;
hence ( ( x = [1,<*(s . 1)*>] & y = [0,<*(s . 1),(s . 1)*>] ) or ( x = [2,<*(s . 1),(s . 2),(s . 3)*>] & y = [0,<*(s . 1),(s . 3)*>] ) ) by A26, A27, A29, MCART_1:21; :: thesis: verum
end;
end;
end;
consider R being Function such that
A32: ( dom R = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & rng R c= [:{0},(2 -tuples_on A):] ) and
A33: for x being object st x in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] holds
S1[x,R . x] from FUNCT_1:sch 6(A19);
reconsider R = R as Function of ([:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):]),[:{0},(2 -tuples_on A):] by A32, FUNCT_2:2;
take S = ManySortedSign(# [:{0},(2 -tuples_on A):],([:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):]),Ar,R #); :: thesis: ( the carrier of S = [:{0},(2 -tuples_on A):] & the carrier' of S = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for a being set st a in A holds
( the Arity of S . [1,<*a*>] = {} & the ResultSort of S . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) )

thus the carrier of S = [:{0},(2 -tuples_on A):] ; :: thesis: ( the carrier' of S = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] & ( for a being set st a in A holds
( the Arity of S . [1,<*a*>] = {} & the ResultSort of S . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) )

thus the carrier' of S = [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] ; :: thesis: ( ( for a being set st a in A holds
( the Arity of S . [1,<*a*>] = {} & the ResultSort of S . [1,<*a*>] = [0,<*a,a*>] ) ) & ( for a, b, c being set st a in A & b in A & c in A holds
( the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] ) ) )

hereby :: thesis: for a, b, c being set st a in A & b in A & c in A holds
( the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] )
let a be set ; :: thesis: ( a in A implies ( the Arity of S . [1,<*a*>] = {} & the ResultSort of S . [1,<*a*>] = [0,<*a,a*>] ) )
assume A34: a in A ; :: thesis: ( the Arity of S . [1,<*a*>] = {} & the ResultSort of S . [1,<*a*>] = [0,<*a,a*>] )
then reconsider B = A as non empty set ;
reconsider x = a as Element of B by A34;
( <*x*> is Element of 1 -tuples_on B & 1 in {1} ) by FINSEQ_2:98, TARSKI:def 1;
then [1,<*a*>] in [:{1},(1 -tuples_on A):] by ZFMISC_1:87;
then A35: [1,<*a*>] in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] by XBOOLE_0:def 3;
then consider y1, y2, y3 being set such that
y1 in A and
y2 in A and
y3 in A and
A36: ( ( [1,<*a*>] = [1,<*y1*>] & R . [1,<*a*>] = [0,<*y1,y1*>] ) or ( [1,<*a*>] = [2,<*y1,y2,y3*>] & R . [1,<*a*>] = [0,<*y1,y3*>] ) ) by A33;
ex y1, y2, y3 being set st
( y1 in A & y2 in A & y3 in A & ( ( [1,<*a*>] = [1,<*y1*>] & Ar . [1,<*a*>] = {} ) or ( [1,<*a*>] = [2,<*y1,y2,y3*>] & Ar . [1,<*a*>] = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) ) by A18, A35;
hence the Arity of S . [1,<*a*>] = {} by XTUPLE_0:1; :: thesis: the ResultSort of S . [1,<*a*>] = [0,<*a,a*>]
A37: ( <*a*> . 1 = a & <*y1*> . 1 = y1 ) ;
<*a*> = <*y1*> by A36, XTUPLE_0:1;
hence the ResultSort of S . [1,<*a*>] = [0,<*a,a*>] by A36, A37, XTUPLE_0:1; :: thesis: verum
end;
let a, b, c be set ; :: thesis: ( a in A & b in A & c in A implies ( the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] ) )
assume that
A38: a in A and
A39: ( b in A & c in A ) ; :: thesis: ( the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> & the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] )
reconsider B = A as non empty set by A38;
reconsider x = a, y = b, z = c as Element of B by A38, A39;
( <*x,y,z*> is Element of 3 -tuples_on B & 2 in {2} ) by FINSEQ_2:104, TARSKI:def 1;
then [2,<*a,b,c*>] in [:{2},(3 -tuples_on A):] by ZFMISC_1:87;
then A40: [2,<*a,b,c*>] in [:{1},(1 -tuples_on A):] \/ [:{2},(3 -tuples_on A):] by XBOOLE_0:def 3;
then consider y1, y2, y3 being set such that
y1 in A and
y2 in A and
y3 in A and
A41: ( ( [2,<*a,b,c*>] = [1,<*y1*>] & Ar . [2,<*a,b,c*>] = {} ) or ( [2,<*a,b,c*>] = [2,<*y1,y2,y3*>] & Ar . [2,<*a,b,c*>] = <*[0,<*y2,y3*>],[0,<*y1,y2*>]*> ) ) by A18;
A42: ( <*a,b,c*> = (<*a*> ^ <*b*>) ^ <*c*> & <*y1,y2,y3*> = (<*y1*> ^ <*y2*>) ^ <*y3*> ) by FINSEQ_1:def 10;
A43: <*a,b,c*> = <*y1,y2,y3*> by A41, XTUPLE_0:1;
then A44: <*a*> ^ <*b*> = <*y1*> ^ <*y2*> by A42, FINSEQ_2:17;
then <*a*> = <*y1*> by FINSEQ_2:17;
then A45: a = y1 by Lm1;
b = y2 by A44, FINSEQ_2:17;
hence the Arity of S . [2,<*a,b,c*>] = <*[0,<*b,c*>],[0,<*a,b*>]*> by A41, A43, A42, A45, FINSEQ_2:17, XTUPLE_0:1; :: thesis: the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>]
consider y1, y2, y3 being set such that
y1 in A and
y2 in A and
y3 in A and
A46: ( ( [2,<*a,b,c*>] = [1,<*y1*>] & R . [2,<*a,b,c*>] = [0,<*y1,y1*>] ) or ( [2,<*a,b,c*>] = [2,<*y1,y2,y3*>] & R . [2,<*a,b,c*>] = [0,<*y1,y3*>] ) ) by A33, A40;
A47: ( <*a,b,c*> . 1 = a & <*y1,y2,y3*> . 1 = y1 ) ;
A48: <*a,b,c*> . 3 = c ;
<*a,b,c*> = <*y1,y2,y3*> by A46, XTUPLE_0:1;
hence the ResultSort of S . [2,<*a,b,c*>] = [0,<*a,c*>] by A46, A47, A48, FINSEQ_1:45, XTUPLE_0:1; :: thesis: verum