let S be non empty non void ManySortedSign ; :: thesis: for A being non-empty MSAlgebra of S
for o being OperSymbol of S
for C1, C2 being MSCongruence of A
for C being MSEquivalence-like ManySortedRelation of A st C = C1 "\/" C2 holds
for x1, y1 being set
for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let A be non-empty MSAlgebra of S; :: thesis: for o being OperSymbol of S
for C1, C2 being MSCongruence of A
for C being MSEquivalence-like ManySortedRelation of A st C = C1 "\/" C2 holds
for x1, y1 being set
for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let o be OperSymbol of S; :: thesis: for C1, C2 being MSCongruence of A
for C being MSEquivalence-like ManySortedRelation of A st C = C1 "\/" C2 holds
for x1, y1 being set
for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let C1, C2 be MSCongruence of A; :: thesis: for C being MSEquivalence-like ManySortedRelation of A st C = C1 "\/" C2 holds
for x1, y1 being set
for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let C be MSEquivalence-like ManySortedRelation of A; :: thesis: ( C = C1 "\/" C2 implies for x1, y1 being set
for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o) )

assume A1: C = C1 "\/" C2 ; :: thesis: for x1, y1 being set
for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let x1, y1 be set ; :: thesis: for n being Element of NAT
for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let n be Element of NAT ; :: thesis: for a1, a2, b1 being FinSequence st len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) holds
for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let a1, a2, b1 be FinSequence; :: thesis: ( len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) & [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) & [x1,y1] in C . ((the_arity_of o) /. (n + 1)) implies for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o) )

assume A2: ( len a1 = n & len a1 = len a2 & ( for k being Element of NAT st k in dom a1 holds
[(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) ) ) ; :: thesis: ( not [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) or not [x1,y1] in C . ((the_arity_of o) /. (n + 1)) or for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o) )

assume that
A3: [((Den o,A) . ((a1 ^ <*x1*>) ^ b1)),((Den o,A) . ((a2 ^ <*x1*>) ^ b1))] in C . (the_result_sort_of o) and
A4: [x1,y1] in C . ((the_arity_of o) /. (n + 1)) ; :: thesis: for x being Element of Args o,A st x = (a1 ^ <*x1*>) ^ b1 holds
[((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)

let x be Element of Args o,A; :: thesis: ( x = (a1 ^ <*x1*>) ^ b1 implies [((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o) )
assume A5: x = (a1 ^ <*x1*>) ^ b1 ; :: thesis: [((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o)
set y = (a2 ^ <*y1*>) ^ b1;
A7: dom x = Seg (len ((a1 ^ <*x1*>) ^ b1)) by A5, FINSEQ_1:def 3
.= Seg (len (a1 ^ (<*x1*> ^ b1))) by FINSEQ_1:45
.= Seg ((len a2) + (len (<*x1*> ^ b1))) by A2, FINSEQ_1:35
.= Seg (len (a2 ^ (<*x1*> ^ b1))) by FINSEQ_1:35
.= Seg (len ((a2 ^ <*x1*>) ^ b1)) by FINSEQ_1:45
.= dom ((a2 ^ <*x1*>) ^ b1) by FINSEQ_1:def 3 ;
consider C' being ManySortedRelation of the Sorts of A such that
A8: ( C' = C1 \/ C2 & C1 "\/" C2 = EqCl C' ) by Def4;
A9: (C1 . (the_result_sort_of o)) "\/" (C2 . (the_result_sort_of o)) = EqCl ((C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))) by Th2
.= EqCl (C' . (the_result_sort_of o)) by A8, PBOOLE:def 7
.= (C1 "\/" C2) . (the_result_sort_of o) by A8, Def3 ;
A10: the Sorts of A . (the_result_sort_of o) = the Sorts of A . (the ResultSort of S . o) by MSUALG_1:def 7
.= (the Sorts of A * the ResultSort of S) . o by FUNCT_2:21
.= Result o,A by MSUALG_1:def 10 ;
then (Den o,A) . x in the Sorts of A . (the_result_sort_of o) ;
then consider p being FinSequence such that
A11: ( 1 <= len p & (Den o,A) . ((a1 ^ <*x1*>) ^ b1) = p . 1 & (Den o,A) . ((a2 ^ <*x1*>) ^ b1) = p . (len p) & ( for i being Element of NAT st 1 <= i & i < len p holds
[(p . i),(p . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) ) ) by A1, A3, A5, A9, EQREL_1:36;
consider D' being ManySortedRelation of the Sorts of A such that
A12: ( D' = C1 \/ C2 & C1 "\/" C2 = EqCl D' ) by Def4;
A13: (C1 . ((the_arity_of o) /. (n + 1))) "\/" (C2 . ((the_arity_of o) /. (n + 1))) = EqCl ((C1 . ((the_arity_of o) /. (n + 1))) \/ (C2 . ((the_arity_of o) /. (n + 1)))) by Th2
.= EqCl (D' . ((the_arity_of o) /. (n + 1))) by A12, PBOOLE:def 7
.= (C1 "\/" C2) . ((the_arity_of o) /. (n + 1)) by A12, Def3 ;
x1 in the Sorts of A . ((the_arity_of o) /. (n + 1)) by A4, ZFMISC_1:106;
then consider f being FinSequence such that
A14: ( 1 <= len f & x1 = f . 1 & y1 = f . (len f) & ( for i being Element of NAT st 1 <= i & i < len f holds
[(f . i),(f . (i + 1))] in (C1 . ((the_arity_of o) /. (n + 1))) \/ (C2 . ((the_arity_of o) /. (n + 1))) ) ) by A1, A4, A13, EQREL_1:36;
deffunc H1( Nat) -> set = (Den o,A) . ((a2 ^ <*(f . $1)*>) ^ b1);
consider g being FinSequence such that
A15: ( len g = len f & ( for i being Nat st i in dom g holds
g . i = H1(i) ) ) from FINSEQ_1:sch 2();
A16: dom g = Seg (len f) by A15, FINSEQ_1:def 3;
ex q being FinSequence st
( 1 <= len q & (Den o,A) . x = q . 1 & (Den o,A) . ((a2 ^ <*y1*>) ^ b1) = q . (len q) & ( for i being Element of NAT st 1 <= i & i < len q holds
[(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) ) )
proof
take q = p ^ g; :: thesis: ( 1 <= len q & (Den o,A) . x = q . 1 & (Den o,A) . ((a2 ^ <*y1*>) ^ b1) = q . (len q) & ( for i being Element of NAT st 1 <= i & i < len q holds
[(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) ) )

A17: len q = (len p) + (len g) by FINSEQ_1:35;
hence 1 <= len q by A11, NAT_1:12; :: thesis: ( (Den o,A) . x = q . 1 & (Den o,A) . ((a2 ^ <*y1*>) ^ b1) = q . (len q) & ( for i being Element of NAT st 1 <= i & i < len q holds
[(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) ) )

1 in dom p by A11, FINSEQ_3:27;
hence q . 1 = (Den o,A) . x by A5, A11, FINSEQ_1:def 7; :: thesis: ( (Den o,A) . ((a2 ^ <*y1*>) ^ b1) = q . (len q) & ( for i being Element of NAT st 1 <= i & i < len q holds
[(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) ) )

A18: len g in Seg (len f) by A14, A15, FINSEQ_1:3;
then len g in dom g by A15, FINSEQ_1:def 3;
hence q . (len q) = g . (len g) by A17, FINSEQ_1:def 7
.= (Den o,A) . ((a2 ^ <*y1*>) ^ b1) by A14, A15, A18, A16 ;
:: thesis: for i being Element of NAT st 1 <= i & i < len q holds
[(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))

A19: len p <> 0 by A11;
hereby :: thesis: verum
let i be Element of NAT ; :: thesis: ( 1 <= i & i < len q implies [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) )
assume A20: ( 1 <= i & i < len q ) ; :: thesis: [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))
A21: ( ( 1 <= i & i < len p ) or ( (len p) + 1 <= i & i < len q ) or i = len p )
proof
assume that
A22: ( not 1 <= i or not i < len p ) and
A23: ( not (len p) + 1 <= i or not i < len q ) ; :: thesis: i = len p
i <= len p by A20, A23, NAT_1:13;
hence i = len p by A20, A22, XXREAL_0:1; :: thesis: verum
end;
consider i1 being Nat such that
A24: len p = i1 + 1 by A19, NAT_1:6;
A25: Seg (len ((a1 ^ <*x1*>) ^ b1)) = dom x by A5, FINSEQ_1:def 3
.= dom (the_arity_of o) by MSUALG_3:6
.= Seg (len (the_arity_of o)) by FINSEQ_1:def 3 ;
A26: len ((a2 ^ <*x1*>) ^ b1) = len (a2 ^ (<*x1*> ^ b1)) by FINSEQ_1:45
.= (len a2) + (len (<*x1*> ^ b1)) by FINSEQ_1:35
.= len (a1 ^ (<*x1*> ^ b1)) by A2, FINSEQ_1:35
.= len ((a1 ^ <*x1*>) ^ b1) by FINSEQ_1:45
.= len (the_arity_of o) by A25, FINSEQ_1:8 ;
A27: now
let k be Element of NAT ; :: thesis: ( k in dom x implies x . k in the Sorts of A . ((the_arity_of o) /. k) )
assume k in dom x ; :: thesis: x . k in the Sorts of A . ((the_arity_of o) /. k)
then A28: k in Seg (len (the_arity_of o)) by A7, A26, FINSEQ_1:def 3;
then A29: k in dom (the_arity_of o) by FINSEQ_1:def 3;
then A30: k in dom (the Sorts of A * (the_arity_of o)) by PARTFUN1:def 4;
reconsider dz = dom (the_arity_of o) as non empty set by A28, FINSEQ_1:def 3;
reconsider so = the Sorts of A * (the_arity_of o) as V2() ManySortedSet of ;
A31: not product so is empty ;
pi (Args o,A),k = pi (((the Sorts of A # ) * the Arity of S) . o),k by MSUALG_1:def 9
.= pi ((the Sorts of A # ) . (the Arity of S . o)),k by FUNCT_2:21
.= pi ((the Sorts of A # ) . (the_arity_of o)),k by MSUALG_1:def 6
.= pi (product (the Sorts of A * (the_arity_of o))),k by PBOOLE:def 19
.= (the Sorts of A * (the_arity_of o)) . k by A30, A31, CARD_3:22
.= the Sorts of A . ((the_arity_of o) . k) by A29, FUNCT_1:23
.= the Sorts of A . ((the_arity_of o) /. k) by A29, PARTFUN1:def 8 ;
hence x . k in the Sorts of A . ((the_arity_of o) /. k) by CARD_3:def 6; :: thesis: verum
end;
now
per cases ( ( 1 <= i & i < len p ) or i = len p or ( (len p) + 1 <= i & i < len q ) ) by A21;
suppose A32: ( 1 <= i & i < len p ) ; :: thesis: [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))
then i in dom p by FINSEQ_3:27;
then A33: q . i = p . i by FINSEQ_1:def 7;
( 1 <= i + 1 & i + 1 <= len p ) by A32, NAT_1:13;
then i + 1 in dom p by FINSEQ_3:27;
then q . (i + 1) = p . (i + 1) by FINSEQ_1:def 7;
hence [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) by A11, A32, A33; :: thesis: verum
end;
suppose A34: i = len p ; :: thesis: [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))
then i in Seg (len p) by A24, FINSEQ_1:6;
then i in dom p by FINSEQ_1:def 3;
then A35: q . i = (Den o,A) . ((a2 ^ <*x1*>) ^ b1) by A11, A34, FINSEQ_1:def 7;
A36: 1 in Seg (len g) by A14, A15, FINSEQ_1:3;
then 1 in dom g by FINSEQ_1:def 3;
then A37: q . (i + 1) = g . 1 by A34, FINSEQ_1:def 7
.= (Den o,A) . ((a2 ^ <*x1*>) ^ b1) by A14, A15, A36, A16 ;
for k being Nat st k in dom ((a2 ^ <*x1*>) ^ b1) holds
((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
proof
let k be Nat; :: thesis: ( k in dom ((a2 ^ <*x1*>) ^ b1) implies ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) )
assume A38: k in dom ((a2 ^ <*x1*>) ^ b1) ; :: thesis: ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then A39: k in dom (a2 ^ (<*x1*> ^ b1)) by FINSEQ_1:45;
now
per cases ( k in dom a2 or ex n1 being Nat st
( n1 in dom (<*x1*> ^ b1) & k = (len a2) + n1 ) )
by A39, FINSEQ_1:38;
suppose A40: k in dom a2 ; :: thesis: ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then k in Seg (len a2) by FINSEQ_1:def 3;
then k in dom a1 by A2, FINSEQ_1:def 3;
then A41: [(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) by A2;
((a2 ^ <*x1*>) ^ b1) . k = (a2 ^ (<*x1*> ^ b1)) . k by FINSEQ_1:45
.= a2 . k by A40, FINSEQ_1:def 7 ;
hence ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A41, ZFMISC_1:106; :: thesis: verum
end;
suppose ex n1 being Nat st
( n1 in dom (<*x1*> ^ b1) & k = (len a2) + n1 ) ; :: thesis: ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then consider n1 being Nat such that
A42: ( n1 in dom (<*x1*> ^ b1) & k = (len a2) + n1 ) ;
((a2 ^ <*x1*>) ^ b1) . k = (a2 ^ (<*x1*> ^ b1)) . k by FINSEQ_1:45
.= (<*x1*> ^ b1) . n1 by A42, FINSEQ_1:def 7
.= (a1 ^ (<*x1*> ^ b1)) . k by A2, A42, FINSEQ_1:def 7
.= x . k by A5, FINSEQ_1:45 ;
hence ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A7, A27, A38; :: thesis: verum
end;
end;
end;
hence ((a2 ^ <*x1*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) ; :: thesis: verum
end;
then reconsider de = (a2 ^ <*x1*>) ^ b1 as Element of Args o,A by A26, MSAFREE2:7;
A43: (Den o,A) . de in the Sorts of A . (the_result_sort_of o) by A10;
( field (C1 . (the_result_sort_of o)) = the Sorts of A . (the_result_sort_of o) & field (C2 . (the_result_sort_of o)) = the Sorts of A . (the_result_sort_of o) ) by EQREL_1:16;
then A44: field ((C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))) = (the Sorts of A . (the_result_sort_of o)) \/ (the Sorts of A . (the_result_sort_of o)) by RELAT_1:33
.= the Sorts of A . (the_result_sort_of o) ;
(C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) is reflexive by RELAT_2:31;
then (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) is_reflexive_in the Sorts of A . (the_result_sort_of o) by A44, RELAT_2:def 9;
hence [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) by A35, A37, A43, RELAT_2:def 1; :: thesis: verum
end;
suppose A45: ( (len p) + 1 <= i & i < len q ) ; :: thesis: [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o))
then A46: (len p) + 1 <= i + 1 by NAT_1:12;
A47: i + 1 <= len q by A45, NAT_1:13;
len p < i by A45, NAT_1:13;
then reconsider j = i - (len p) as Element of NAT by NAT_1:21;
A48: 1 <= j by A45, XREAL_1:21;
len f = (len q) - (len p) by A15, A17, XCMPLX_1:26;
then A49: j < len f by A45, XREAL_1:11;
( 1 <= j & j <= len f ) by A15, A17, A45, XREAL_1:21;
then A51: i - (len p) in Seg (len f) by FINSEQ_1:3;
( 1 <= j + 1 & j + 1 <= len f ) by A49, NAT_1:12, NAT_1:13;
then j + 1 in Seg (len f) by FINSEQ_1:3;
then A53: (i + 1) - (len p) in Seg (len f) by XCMPLX_1:29;
A55: [(f . j),(f . (j + 1))] in (C1 . ((the_arity_of o) /. (n + 1))) \/ (C2 . ((the_arity_of o) /. (n + 1))) by A14, A48, A49;
then A56: f . (i - (len p)) in the Sorts of A . ((the_arity_of o) /. (n + 1)) by ZFMISC_1:106;
A57: f . ((i - (len p)) + 1) in the Sorts of A . ((the_arity_of o) /. (n + 1)) by A55, ZFMISC_1:106;
A58: for k being Nat st k in dom ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) holds
((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
proof
let k be Nat; :: thesis: ( k in dom ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) implies ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) )
assume A59: k in dom ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) ; :: thesis: ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then A60: ( k in dom (a2 ^ <*(f . (i - (len p)))*>) or ex n1 being Nat st
( n1 in dom b1 & k = (len (a2 ^ <*(f . (i - (len p)))*>)) + n1 ) ) by FINSEQ_1:38;
now
per cases ( k in dom a2 or ex n2 being Nat st
( n2 in dom <*(f . (i - (len p)))*> & k = (len a2) + n2 ) or ex n1 being Element of NAT st
( n1 in dom b1 & k = (len (a2 ^ <*(f . (i - (len p)))*>)) + n1 ) )
by A60, FINSEQ_1:38;
suppose A61: k in dom a2 ; :: thesis: ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then k in Seg (len a2) by FINSEQ_1:def 3;
then k in dom a1 by A2, FINSEQ_1:def 3;
then A62: [(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) by A2;
((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k = (a2 ^ (<*(f . (i - (len p)))*> ^ b1)) . k by FINSEQ_1:45
.= a2 . k by A61, FINSEQ_1:def 7 ;
hence ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A62, ZFMISC_1:106; :: thesis: verum
end;
suppose ex n2 being Nat st
( n2 in dom <*(f . (i - (len p)))*> & k = (len a2) + n2 ) ; :: thesis: ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then consider n2 being Nat such that
A63: ( n2 in dom <*(f . (i - (len p)))*> & k = (len a2) + n2 ) ;
A64: n2 in Seg 1 by A63, FINSEQ_1:55;
then A65: k = (len a1) + 1 by A2, A63, FINSEQ_1:4, TARSKI:def 1;
then k in Seg ((len a2) + 1) by A2, FINSEQ_1:6;
then k in Seg ((len a2) + (len <*(f . (i - (len p)))*>)) by FINSEQ_1:57;
then k in Seg (len (a2 ^ <*(f . (i - (len p)))*>)) by FINSEQ_1:35;
then k in dom (a2 ^ <*(f . (i - (len p)))*>) by FINSEQ_1:def 3;
then ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k = (a2 ^ <*(f . (i - (len p)))*>) . k by FINSEQ_1:def 7
.= f . (i - (len p)) by A2, A65, FINSEQ_1:59 ;
hence ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A2, A56, A63, A64, FINSEQ_1:4, TARSKI:def 1; :: thesis: verum
end;
suppose ex n1 being Element of NAT st
( n1 in dom b1 & k = (len (a2 ^ <*(f . (i - (len p)))*>)) + n1 ) ; :: thesis: ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then consider n1 being Element of NAT such that
A66: ( n1 in dom b1 & k = (len (a2 ^ <*(f . (i - (len p)))*>)) + n1 ) ;
A67: len (a1 ^ <*x1*>) = (len a1) + (len <*x1*>) by FINSEQ_1:35
.= (len a2) + 1 by A2, FINSEQ_1:57
.= (len a2) + (len <*(f . (i - (len p)))*>) by FINSEQ_1:57
.= len (a2 ^ <*(f . (i - (len p)))*>) by FINSEQ_1:35 ;
A68: dom x = Seg (len ((a1 ^ <*x1*>) ^ b1)) by A5, FINSEQ_1:def 3
.= Seg ((len (a1 ^ <*x1*>)) + (len b1)) by FINSEQ_1:35
.= Seg (((len a1) + (len <*x1*>)) + (len b1)) by FINSEQ_1:35
.= Seg (((len a2) + 1) + (len b1)) by A2, FINSEQ_1:57
.= Seg (((len a2) + (len <*(f . (i - (len p)))*>)) + (len b1)) by FINSEQ_1:57
.= Seg ((len (a2 ^ <*(f . (i - (len p)))*>)) + (len b1)) by FINSEQ_1:35
.= Seg (len ((a2 ^ <*(f . (i - (len p)))*>) ^ b1)) by FINSEQ_1:35
.= dom ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) by FINSEQ_1:def 3 ;
((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k = b1 . n1 by A66, FINSEQ_1:def 7
.= x . k by A5, A66, A67, FINSEQ_1:def 7 ;
hence ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A27, A59, A68; :: thesis: verum
end;
end;
end;
hence ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) ; :: thesis: verum
end;
A69: for k being Nat st k in dom ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) holds
((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
proof
let k be Nat; :: thesis: ( k in dom ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) implies ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) )
assume A70: k in dom ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) ; :: thesis: ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then A71: ( k in dom (a2 ^ <*(f . ((i + 1) - (len p)))*>) or ex n1 being Nat st
( n1 in dom b1 & k = (len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) + n1 ) ) by FINSEQ_1:38;
now
per cases ( k in dom a2 or ex n2 being Nat st
( n2 in dom <*(f . ((i + 1) - (len p)))*> & k = (len a2) + n2 ) or ex n1 being Element of NAT st
( n1 in dom b1 & k = (len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) + n1 ) )
by A71, FINSEQ_1:38;
suppose A72: k in dom a2 ; :: thesis: ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then k in Seg (len a2) by FINSEQ_1:def 3;
then k in dom a1 by A2, FINSEQ_1:def 3;
then A73: [(a1 . k),(a2 . k)] in C . ((the_arity_of o) /. k) by A2;
((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k = (a2 ^ (<*(f . ((i + 1) - (len p)))*> ^ b1)) . k by FINSEQ_1:45
.= a2 . k by A72, FINSEQ_1:def 7 ;
hence ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A73, ZFMISC_1:106; :: thesis: verum
end;
suppose ex n2 being Nat st
( n2 in dom <*(f . ((i + 1) - (len p)))*> & k = (len a2) + n2 ) ; :: thesis: ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then consider n2 being Nat such that
A74: ( n2 in dom <*(f . ((i + 1) - (len p)))*> & k = (len a2) + n2 ) ;
n2 in Seg 1 by A74, FINSEQ_1:55;
then A75: k = (len a1) + 1 by A2, A74, FINSEQ_1:4, TARSKI:def 1;
then k in Seg ((len a2) + 1) by A2, FINSEQ_1:6;
then k in Seg ((len a2) + (len <*(f . ((i + 1) - (len p)))*>)) by FINSEQ_1:57;
then k in Seg (len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) by FINSEQ_1:35;
then k in dom (a2 ^ <*(f . ((i + 1) - (len p)))*>) by FINSEQ_1:def 3;
then ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k = (a2 ^ <*(f . ((i + 1) - (len p)))*>) . k by FINSEQ_1:def 7
.= f . ((i + 1) - (len p)) by A2, A75, FINSEQ_1:59 ;
hence ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A2, A57, A75, XCMPLX_1:29; :: thesis: verum
end;
suppose ex n1 being Element of NAT st
( n1 in dom b1 & k = (len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) + n1 ) ; :: thesis: ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k)
then consider n1 being Element of NAT such that
A76: ( n1 in dom b1 & k = (len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) + n1 ) ;
A77: len (a1 ^ <*x1*>) = (len a1) + (len <*x1*>) by FINSEQ_1:35
.= (len a2) + 1 by A2, FINSEQ_1:57
.= (len a2) + (len <*(f . ((i + 1) - (len p)))*>) by FINSEQ_1:57
.= len (a2 ^ <*(f . ((i + 1) - (len p)))*>) by FINSEQ_1:35 ;
A78: dom x = Seg (len ((a1 ^ <*x1*>) ^ b1)) by A5, FINSEQ_1:def 3
.= Seg ((len (a1 ^ <*x1*>)) + (len b1)) by FINSEQ_1:35
.= Seg (((len a1) + (len <*x1*>)) + (len b1)) by FINSEQ_1:35
.= Seg (((len a2) + 1) + (len b1)) by A2, FINSEQ_1:57
.= Seg (((len a2) + (len <*(f . ((i + 1) - (len p)))*>)) + (len b1)) by FINSEQ_1:57
.= Seg ((len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) + (len b1)) by FINSEQ_1:35
.= Seg (len ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1)) by FINSEQ_1:35
.= dom ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) by FINSEQ_1:def 3 ;
((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k = b1 . n1 by A76, FINSEQ_1:def 7
.= x . k by A5, A76, A77, FINSEQ_1:def 7 ;
hence ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) by A27, A70, A78; :: thesis: verum
end;
end;
end;
hence ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) . k in the Sorts of A . ((the_arity_of o) /. k) ; :: thesis: verum
end;
A79: Seg (len ((a1 ^ <*x1*>) ^ b1)) = dom x by A5, FINSEQ_1:def 3
.= dom (the_arity_of o) by MSUALG_3:6
.= Seg (len (the_arity_of o)) by FINSEQ_1:def 3 ;
( len ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) = len (the_arity_of o) & len ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) = len (the_arity_of o) )
proof
thus len ((a2 ^ <*(f . (i - (len p)))*>) ^ b1) = (len (a2 ^ <*(f . (i - (len p)))*>)) + (len b1) by FINSEQ_1:35
.= ((len a2) + (len <*(f . (i - (len p)))*>)) + (len b1) by FINSEQ_1:35
.= ((len a2) + 1) + (len b1) by FINSEQ_1:57
.= ((len a1) + (len <*x1*>)) + (len b1) by A2, FINSEQ_1:57
.= (len (a1 ^ <*x1*>)) + (len b1) by FINSEQ_1:35
.= len ((a1 ^ <*x1*>) ^ b1) by FINSEQ_1:35
.= len (the_arity_of o) by A79, FINSEQ_1:8 ; :: thesis: len ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) = len (the_arity_of o)
thus len ((a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1) = (len (a2 ^ <*(f . ((i + 1) - (len p)))*>)) + (len b1) by FINSEQ_1:35
.= ((len a2) + (len <*(f . ((i + 1) - (len p)))*>)) + (len b1) by FINSEQ_1:35
.= ((len a2) + 1) + (len b1) by FINSEQ_1:57
.= ((len a1) + (len <*x1*>)) + (len b1) by A2, FINSEQ_1:57
.= (len (a1 ^ <*x1*>)) + (len b1) by FINSEQ_1:35
.= len ((a1 ^ <*x1*>) ^ b1) by FINSEQ_1:35
.= len (the_arity_of o) by A79, FINSEQ_1:8 ; :: thesis: verum
end;
then reconsider d1 = (a2 ^ <*(f . (i - (len p)))*>) ^ b1, d2 = (a2 ^ <*(f . ((i + 1) - (len p)))*>) ^ b1 as Element of Args o,A by A58, A69, MSAFREE2:7;
A80: q . i = g . (i - (len p)) by A17, A45, FINSEQ_1:36
.= (Den o,A) . d1 by A15, A51, A16 ;
A81: q . (i + 1) = g . ((i + 1) - (len p)) by A17, A46, A47, FINSEQ_1:36
.= (Den o,A) . d2 by A15, A53, A16 ;
(i + 1) - (len p) = (i - (len p)) + 1 by XCMPLX_1:29;
then [(f . (i - (len p))),(f . ((i + 1) - (len p)))] in (C1 . ((the_arity_of o) /. (n + 1))) \/ (C2 . ((the_arity_of o) /. (n + 1))) by A14, A48, A49;
hence [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) by A2, A80, A81, Th14; :: thesis: verum
end;
end;
end;
hence [(q . i),(q . (i + 1))] in (C1 . (the_result_sort_of o)) \/ (C2 . (the_result_sort_of o)) ; :: thesis: verum
end;
end;
hence [((Den o,A) . x),((Den o,A) . ((a2 ^ <*y1*>) ^ b1))] in C . (the_result_sort_of o) by A1, A9, A10, EQREL_1:36; :: thesis: verum