begin
:: deftheorem defines + ALGSTR_0:def 1 :
for M being addMagma
for x, y being Element of M holds x + y = the addF of M . (x,y);
:: deftheorem defines Trivial-addMagma ALGSTR_0:def 2 :
Trivial-addMagma = addMagma(# 1,op2 #);
:: deftheorem defines left_add-cancelable ALGSTR_0:def 3 :
for M being addMagma
for x being Element of M holds
( x is left_add-cancelable iff for y, z being Element of M st x + y = x + z holds
y = z );
:: deftheorem Def4 defines right_add-cancelable ALGSTR_0:def 4 :
for M being addMagma
for x being Element of M holds
( x is right_add-cancelable iff for y, z being Element of M st y + x = z + x holds
y = z );
:: deftheorem Def5 defines add-cancelable ALGSTR_0:def 5 :
for M being addMagma
for x being Element of M holds
( x is add-cancelable iff ( x is right_add-cancelable & x is left_add-cancelable ) );
:: deftheorem Def6 defines left_add-cancelable ALGSTR_0:def 6 :
for M being addMagma holds
( M is left_add-cancelable iff for x being Element of M holds x is left_add-cancelable );
:: deftheorem Def7 defines right_add-cancelable ALGSTR_0:def 7 :
for M being addMagma holds
( M is right_add-cancelable iff for x being Element of M holds x is right_add-cancelable );
:: deftheorem Def8 defines add-cancelable ALGSTR_0:def 8 :
for M being addMagma holds
( M is add-cancelable iff ( M is right_add-cancelable & M is left_add-cancelable ) );
:: deftheorem defines Trivial-addLoopStr ALGSTR_0:def 9 :
Trivial-addLoopStr = addLoopStr(# 1,op2,op0 #);
:: deftheorem Def10 defines left_complementable ALGSTR_0:def 10 :
for M being addLoopStr
for x being Element of M holds
( x is left_complementable iff ex y being Element of M st y + x = 0. M );
:: deftheorem defines right_complementable ALGSTR_0:def 11 :
for M being addLoopStr
for x being Element of M holds
( x is right_complementable iff ex y being Element of M st x + y = 0. M );
:: deftheorem Def12 defines complementable ALGSTR_0:def 12 :
for M being addLoopStr
for x being Element of M holds
( x is complementable iff ( x is right_complementable & x is left_complementable ) );
:: deftheorem defines - ALGSTR_0:def 13 :
for M being addLoopStr
for x being Element of M st x is left_complementable & x is right_add-cancelable holds
for b3 being Element of M holds
( b3 = - x iff b3 + x = 0. M );
:: deftheorem defines - ALGSTR_0:def 14 :
for V being addLoopStr
for v, w being Element of V holds v - w = v + (- w);
:: deftheorem Def15 defines left_complementable ALGSTR_0:def 15 :
for M being addLoopStr holds
( M is left_complementable iff for x being Element of M holds x is left_complementable );
:: deftheorem Def16 defines right_complementable ALGSTR_0:def 16 :
for M being addLoopStr holds
( M is right_complementable iff for x being Element of M holds x is right_complementable );
:: deftheorem Def17 defines complementable ALGSTR_0:def 17 :
for M being addLoopStr holds
( M is complementable iff ( M is right_complementable & M is left_complementable ) );
begin
:: deftheorem defines * ALGSTR_0:def 18 :
for M being multMagma
for x, y being Element of M holds x * y = the multF of M . (x,y);
:: deftheorem defines Trivial-multMagma ALGSTR_0:def 19 :
Trivial-multMagma = multMagma(# 1,op2 #);
:: deftheorem defines left_mult-cancelable ALGSTR_0:def 20 :
for M being multMagma
for x being Element of M holds
( x is left_mult-cancelable iff for y, z being Element of M st x * y = x * z holds
y = z );
:: deftheorem Def21 defines right_mult-cancelable ALGSTR_0:def 21 :
for M being multMagma
for x being Element of M holds
( x is right_mult-cancelable iff for y, z being Element of M st y * x = z * x holds
y = z );
:: deftheorem Def22 defines mult-cancelable ALGSTR_0:def 22 :
for M being multMagma
for x being Element of M holds
( x is mult-cancelable iff ( x is right_mult-cancelable & x is left_mult-cancelable ) );
:: deftheorem Def23 defines left_mult-cancelable ALGSTR_0:def 23 :
for M being multMagma holds
( M is left_mult-cancelable iff for x being Element of M holds x is left_mult-cancelable );
:: deftheorem Def24 defines right_mult-cancelable ALGSTR_0:def 24 :
for M being multMagma holds
( M is right_mult-cancelable iff for x being Element of M holds x is right_mult-cancelable );
:: deftheorem Def25 defines mult-cancelable ALGSTR_0:def 25 :
for M being multMagma holds
( M is mult-cancelable iff ( M is left_mult-cancelable & M is right_mult-cancelable ) );
:: deftheorem defines Trivial-multLoopStr ALGSTR_0:def 26 :
Trivial-multLoopStr = multLoopStr(# 1,op2,op0 #);
:: deftheorem Def27 defines left_invertible ALGSTR_0:def 27 :
for M being multLoopStr
for x being Element of M holds
( x is left_invertible iff ex y being Element of M st y * x = 1. M );
:: deftheorem defines right_invertible ALGSTR_0:def 28 :
for M being multLoopStr
for x being Element of M holds
( x is right_invertible iff ex y being Element of M st x * y = 1. M );
:: deftheorem Def29 defines invertible ALGSTR_0:def 29 :
for M being multLoopStr
for x being Element of M holds
( x is invertible iff ( x is right_invertible & x is left_invertible ) );
:: deftheorem defines / ALGSTR_0:def 30 :
for M being multLoopStr
for x being Element of M st x is left_invertible & x is right_mult-cancelable holds
for b3 being Element of M holds
( b3 = / x iff b3 * x = 1. M );
:: deftheorem Def31 defines left_invertible ALGSTR_0:def 31 :
for M being multLoopStr holds
( M is left_invertible iff for x being Element of M holds x is left_invertible );
:: deftheorem Def32 defines right_invertible ALGSTR_0:def 32 :
for M being multLoopStr holds
( M is right_invertible iff for x being Element of M holds x is right_invertible );
:: deftheorem Def33 defines invertible ALGSTR_0:def 33 :
for M being multLoopStr holds
( M is invertible iff ( M is right_invertible & M is left_invertible ) );
begin
:: deftheorem defines Trivial-multLoopStr_0 ALGSTR_0:def 34 :
Trivial-multLoopStr_0 = multLoopStr_0(# 1,op2,op0,op0 #);
:: deftheorem defines " ALGSTR_0:def 35 :
for M being multLoopStr_0
for x, b3 being Element of M holds
( ( x is left_invertible & x is right_mult-cancelable implies ( b3 = x " iff b3 * x = 1. M ) ) & ( ( not x is left_invertible or not x is right_mult-cancelable ) implies ( b3 = x " iff b3 = 0. M ) ) );
:: deftheorem defines almost_left_cancelable ALGSTR_0:def 36 :
for M being multLoopStr_0 holds
( M is almost_left_cancelable iff for x being Element of M st x <> 0. M holds
x is left_mult-cancelable );
:: deftheorem defines almost_right_cancelable ALGSTR_0:def 37 :
for M being multLoopStr_0 holds
( M is almost_right_cancelable iff for x being Element of M st x <> 0. M holds
x is right_mult-cancelable );
:: deftheorem Def38 defines almost_cancelable ALGSTR_0:def 38 :
for M being multLoopStr_0 holds
( M is almost_cancelable iff ( M is almost_left_cancelable & M is almost_right_cancelable ) );
:: deftheorem defines almost_left_invertible ALGSTR_0:def 39 :
for M being multLoopStr_0 holds
( M is almost_left_invertible iff for x being Element of M st x <> 0. M holds
x is left_invertible );
:: deftheorem defines almost_right_invertible ALGSTR_0:def 40 :
for M being multLoopStr_0 holds
( M is almost_right_invertible iff for x being Element of M st x <> 0. M holds
x is right_invertible );
:: deftheorem Def41 defines almost_invertible ALGSTR_0:def 41 :
for M being multLoopStr_0 holds
( M is almost_invertible iff ( M is almost_right_invertible & M is almost_left_invertible ) );
begin
registration
let D be non
empty set ;
let o,
o1 be
BinOp of
D;
let d,
e be
Element of
D;
cluster doubleLoopStr(#
D,
o,
o1,
d,
e #)
-> non
empty ;
coherence
not doubleLoopStr(# D,o,o1,d,e #) is empty
by STRUCT_0:def 1;
end;
registration
let T be
trivial set ;
let f,
f1 be
BinOp of
T;
let s,
t be
Element of
T;
cluster doubleLoopStr(#
T,
f,
f1,
s,
t #)
-> trivial ;
coherence
doubleLoopStr(# T,f,f1,s,t #) is trivial
by STRUCT_0:def 9;
end;
registration
let N be non
trivial set ;
let b,
b1 be
BinOp of
N;
let m,
n be
Element of
N;
cluster doubleLoopStr(#
N,
b,
b1,
m,
n #)
-> non
trivial ;
coherence
not doubleLoopStr(# N,b,b1,m,n #) is trivial
by STRUCT_0:def 9;
end;
:: deftheorem defines Trivial-doubleLoopStr ALGSTR_0:def 42 :
Trivial-doubleLoopStr = doubleLoopStr(# 1,op2,op2,op0,op0 #);