set ua = UAStr(# (product (Carrier A)),(ProdOpSeq A) #);
set pr = product (Carrier A);
for n being Nat
for h being PartFunc of ((product (Carrier A)) * ),(product (Carrier A)) st n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) & h = the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n holds
h is quasi_total
proof
let n be
Nat;
:: thesis: for h being PartFunc of ((product (Carrier A)) * ),(product (Carrier A)) st n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) & h = the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n holds
h is quasi_total let h be
PartFunc of
((product (Carrier A)) * ),
(product (Carrier A));
:: thesis: ( n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) & h = the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n implies h is quasi_total )
assume A1:
(
n in dom the
charact of
UAStr(#
(product (Carrier A)),
(ProdOpSeq A) #) & the
charact of
UAStr(#
(product (Carrier A)),
(ProdOpSeq A) #)
. n = h )
;
:: thesis: h is quasi_total
then
the
charact of
UAStr(#
(product (Carrier A)),
(ProdOpSeq A) #)
. n = [[:(ProdOp A,n):]]
by Def23;
hence
h is
quasi_total
by A1;
:: thesis: verum
end;
then A2:
the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) is quasi_total
by UNIALG_1:def 5;
for n being Nat
for h being PartFunc of ((product (Carrier A)) * ),(product (Carrier A)) st n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) & h = the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n holds
h is homogeneous
proof
let n be
Nat;
:: thesis: for h being PartFunc of ((product (Carrier A)) * ),(product (Carrier A)) st n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) & h = the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n holds
h is homogeneous let h be
PartFunc of
((product (Carrier A)) * ),
(product (Carrier A));
:: thesis: ( n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) & h = the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n implies h is homogeneous )
assume A3:
(
n in dom the
charact of
UAStr(#
(product (Carrier A)),
(ProdOpSeq A) #) & the
charact of
UAStr(#
(product (Carrier A)),
(ProdOpSeq A) #)
. n = h )
;
:: thesis: h is homogeneous
then
the
charact of
UAStr(#
(product (Carrier A)),
(ProdOpSeq A) #)
. n = [[:(ProdOp A,n):]]
by Def23;
hence
h is
homogeneous
by A3;
:: thesis: verum
end;
then A4:
the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) is homogeneous
by UNIALG_1:def 4;
for n being set st n in dom the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) holds
not the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) . n is empty
then A6:
the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) is non-empty
by FUNCT_1:def 15;
consider j being Element of J;
len the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) =
len (ComSign A)
by Def23
.=
len (signature (A . j))
by Def14
.=
len the charact of (A . j)
by UNIALG_1:def 11
;
then
the charact of UAStr(# (product (Carrier A)),(ProdOpSeq A) #) <> {}
;
hence
UAStr(# (product (Carrier A)),(ProdOpSeq A) #) is strict Universal_Algebra
by A2, A4, A6, UNIALG_1:def 7, UNIALG_1:def 8, UNIALG_1:def 9; :: thesis: verum