let D be non empty set ; for A, M being BinOp of D
for f being FinSequence of D
for F1 being finite set st A is having_a_unity & A is commutative & A is associative holds
for E1 being Enumeration of F1 st union F1 c= dom f holds
for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let A, M be BinOp of D; for f being FinSequence of D
for F1 being finite set st A is having_a_unity & A is commutative & A is associative holds
for E1 being Enumeration of F1 st union F1 c= dom f holds
for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let f be FinSequence of D; for F1 being finite set st A is having_a_unity & A is commutative & A is associative holds
for E1 being Enumeration of F1 st union F1 c= dom f holds
for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let F1 be finite set ; ( A is having_a_unity & A is commutative & A is associative implies for E1 being Enumeration of F1 st union F1 c= dom f holds
for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A1:
( A is having_a_unity & A is commutative & A is associative )
; for E1 being Enumeration of F1 st union F1 c= dom f holds
for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let E1 be Enumeration of F1; ( union F1 c= dom f implies for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A2:
union F1 c= dom f
; for g being Permutation of (dom f)
for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let g be Permutation of (dom f); for gE1 being Enumeration of (.: g) .: F1 st gE1 = (.: g) * E1 holds
for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let gE1 be Enumeration of (.: g) .: F1; ( gE1 = (.: g) * E1 implies for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A3:
gE1 = (.: g) * E1
; for fg being FinSequence of D st fg = f * (g ") holds
for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let fg be FinSequence of D; ( fg = f * (g ") implies for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A4:
fg = f * (g ")
; for CE1, CE2 being non-empty non empty FinSequence of D * st CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 holds
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
let CE1, CE2 be non-empty non empty FinSequence of D * ; ( CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 implies for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A5:
( CE1 = (SignGenOp (f,A,F1)) * E1 & CE2 = (SignGenOp (fg,A,((.: g) .: F1))) * gE1 )
; for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
defpred S1[ set ] means for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S1 = $1 & S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)));
A6:
S1[ {}. (dom (App CE1))]
proof
let S1 be
Element of
Fin (dom (App CE1));
for S2 being Element of Fin (dom (App CE2)) st S1 = {}. (dom (App CE1)) & S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))let S2 be
Element of
Fin (dom (App CE2));
( S1 = {}. (dom (App CE1)) & S2 = { (g * s) where s is FinSequence of NAT : s in S1 } implies A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A7:
(
S1 = {}. (dom (App CE1)) &
S2 = { (g * s) where s is FinSequence of NAT : s in S1 } )
;
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
S2 = {}
then
S2 = {}. (dom (App CE2))
;
then A $$ (
S2,
(M "**" (App CE2))) =
the_unity_wrt A
by A1, SETWISEO:31
.=
A $$ (
S1,
(M "**" (App CE1)))
by A7, A1, SETWISEO:31
;
hence
A $$ (
S1,
(M "**" (App CE1)))
= A $$ (
S2,
(M "**" (App CE2)))
;
verum
end;
A9:
for B9 being Element of Fin (dom (App CE1))
for b being Element of dom (App CE1) st S1[B9] & not b in B9 holds
S1[B9 \/ {b}]
proof
let B9 be
Element of
Fin (dom (App CE1));
for b being Element of dom (App CE1) st S1[B9] & not b in B9 holds
S1[B9 \/ {b}]let b be
Element of
dom (App CE1);
( S1[B9] & not b in B9 implies S1[B9 \/ {b}] )
assume A10:
(
S1[
B9] & not
b in B9 )
;
S1[B9 \/ {b}]
let S1 be
Element of
Fin (dom (App CE1));
for S2 being Element of Fin (dom (App CE2)) st S1 = B9 \/ {b} & S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))let S2 be
Element of
Fin (dom (App CE2));
( S1 = B9 \/ {b} & S2 = { (g * s) where s is FinSequence of NAT : s in S1 } implies A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2))) )
assume A11:
(
S1 = B9 \/ {b} &
S2 = { (g * s) where s is FinSequence of NAT : s in S1 } )
;
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
set B2 =
{ (g * s) where s is FinSequence of NAT : s in B9 } ;
reconsider B2 =
{ (g * s) where s is FinSequence of NAT : s in B9 } as
Element of
Fin (dom (App CE2)) by A2, A3, A4, A5, Th100;
b in doms CE1
;
then reconsider c =
b as
FinSequence of
NAT by FINSEQ_1:def 11;
A12:
B2 c= S2
c in S1
by A11, ZFMISC_1:136;
then A15:
g * c in S2
by A11;
then A16:
{(g * b)} c= S2
by ZFMISC_1:31;
S2 c= dom (App CE2)
by FINSUB_1:def 5;
then reconsider gc =
g * c as
Element of
dom (App CE2) by A15;
A17:
dom f = dom g
by FUNCT_2:52;
A18:
rng c c= dom f
A22:
not
gc in B2
S2 c= B2 \/ {(g * b)}
then A30:
B2 \/ {gc} = S2
by A16, A12, XBOOLE_1:8;
(
dom (g ") = dom f &
dom f = rng (g ") )
by FUNCT_2:52, FUNCT_2:def 3;
then A31:
dom (f * (g ")) = dom f
by RELAT_1:27;
A32:
fg = (f * (g ")) | (dom fg)
by A4;
A33:
g .: (dom f) c= dom fg
by A31, A4;
(App CE1) . c = (App CE2) . gc
by A3, A5, A2, A33, A32, Th99, A18, A17;
then (M "**" (App CE1)) . c =
M "**" ((App CE2) . gc)
by Def10
.=
(M "**" (App CE2)) . gc
by Def10
;
hence A $$ (
S1,
(M "**" (App CE1))) =
A . (
(A $$ (B9,(M "**" (App CE1)))),
((M "**" (App CE2)) . gc))
by A1, A10, A11, SETWOP_2:2
.=
A . (
(A $$ (B2,(M "**" (App CE2)))),
((M "**" (App CE2)) . gc))
by A10
.=
A $$ (
S2,
(M "**" (App CE2)))
by A30, A1, A22, SETWOP_2:2
;
verum
end;
for B being Element of Fin (dom (App CE1)) holds S1[B]
from SETWISEO:sch 2(A6, A9);
hence
for S1 being Element of Fin (dom (App CE1))
for S2 being Element of Fin (dom (App CE2)) st S2 = { (g * s) where s is FinSequence of NAT : s in S1 } holds
A $$ (S1,(M "**" (App CE1))) = A $$ (S2,(M "**" (App CE2)))
; verum