begin
definition
let M be ( ( ) ( )
addMagma ) ;
let x,
y be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
func x + y -> ( ( ) ( )
Element of ( ( ) ( )
set ) )
equals
the
addF of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( (
V6()
V18(
[: the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) , the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) :] : ( ( ) ( )
set ) , the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) ) (
V6()
V18(
[: the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) , the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) :] : ( ( ) ( )
set ) , the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) )
BinOp of the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) )
. (
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
y : ( ( ) (
V24()
V25()
V26() )
Element of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) : ( ( ) ( )
Element of the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) ;
end;
definition
let M be ( ( ) ( )
addMagma ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
left_add-cancelable means
for
y,
z being ( ( ) ( )
Element of ( ( ) ( )
set ) ) st
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) )
+ y : ( ( ) ( )
Element of ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) )
+ z : ( ( ) ( )
Element of ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) ) holds
y : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= z : ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
right_add-cancelable means
for
y,
z being ( ( ) ( )
Element of ( ( ) ( )
set ) ) st
y : ( ( ) ( )
Element of ( ( ) ( )
set ) )
+ x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= z : ( ( ) ( )
Element of ( ( ) ( )
set ) )
+ x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) ) holds
y : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= z : ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
end;
definition
let M be ( ( ) ( )
addMagma ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
add-cancelable means
(
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
right_add-cancelable &
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
left_add-cancelable );
end;
definition
let M be ( ( ) ( )
addLoopStr ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
complementable means
(
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
right_complementable &
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
left_complementable );
end;
begin
definition
let M be ( ( ) ( )
multMagma ) ;
let x,
y be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
func x * y -> ( ( ) ( )
Element of ( ( ) ( )
set ) )
equals
the
multF of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( (
V6()
V18(
[: the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) , the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) :] : ( ( ) ( )
set ) , the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) ) (
V6()
V18(
[: the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) , the carrier of M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) : ( ( ) ( ) set ) :] : ( ( ) ( )
set ) , the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) )
BinOp of the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) )
. (
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
y : ( ( ) (
V24()
V25()
V26() )
Element of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) : ( ( ) ( )
Element of the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) ;
end;
definition
let M be ( ( ) ( )
multMagma ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
left_mult-cancelable means
for
y,
z being ( ( ) ( )
Element of ( ( ) ( )
set ) ) st
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) )
* y : ( ( ) ( )
Element of ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) )
* z : ( ( ) ( )
Element of ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) ) holds
y : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= z : ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
right_mult-cancelable means
for
y,
z being ( ( ) ( )
Element of ( ( ) ( )
set ) ) st
y : ( ( ) ( )
Element of ( ( ) ( )
set ) )
* x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= z : ( ( ) ( )
Element of ( ( ) ( )
set ) )
* x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) ) holds
y : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= z : ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
end;
definition
let M be ( ( ) ( )
multMagma ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
mult-cancelable means
(
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
right_mult-cancelable &
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
left_mult-cancelable );
end;
definition
let M be ( ( ) ( )
multLoopStr ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
attr x is
invertible means
(
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
right_invertible &
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
left_invertible );
end;
begin
definition
let M be ( ( ) ( )
multLoopStr_0 ) ;
let x be ( ( ) ( )
Element of ( ( ) ( )
set ) ) ;
func x " -> ( ( ) ( )
Element of ( ( ) ( )
set ) )
means
it : ( ( ) (
V24()
V25()
V26() )
Element of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) )
* x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) : ( ( ) ( )
Element of ( ( ) ( )
set ) )
= 1. M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
Element of the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) )
if (
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
left_invertible &
x : ( (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) ) (
V6()
V18(
[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) ,
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) ) )
Element of
bool [:[:M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( ) set ) ,M : ( ( cardinal ) ( V24() V25() V26() cardinal ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) is
right_mult-cancelable )
otherwise it : ( ( ) (
V24()
V25()
V26() )
Element of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) )
= 0. M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
Element of the
carrier of
M : ( (
cardinal ) (
V24()
V25()
V26()
cardinal )
set ) : ( ( ) ( )
set ) ) ;
end;
begin
registration
let D be ( ( non
empty ) ( non
empty )
set ) ;
let o,
o1 be ( (
V6()
V18(
[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) ,
D : ( ( non
empty ) ( non
empty )
set ) ) ) (
V6()
V18(
[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) ,
D : ( ( non
empty ) ( non
empty )
set ) ) )
BinOp of
D : ( ( non
empty ) ( non
empty )
set ) ) ;
let d,
e be ( ( ) ( )
Element of
D : ( ( non
empty ) ( non
empty )
set ) ) ;
cluster doubleLoopStr(#
D : ( ( non
empty ) ( non
empty )
set ) ,
o : ( (
V6()
V18(
[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) ,
D : ( ( non
empty ) ( non
empty )
set ) ) ) (
V6()
V18(
[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) ,
D : ( ( non
empty ) ( non
empty )
set ) ) )
Element of
bool [:[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
o1 : ( (
V6()
V18(
[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) ,
D : ( ( non
empty ) ( non
empty )
set ) ) ) (
V6()
V18(
[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) ,
D : ( ( non
empty ) ( non
empty )
set ) ) )
Element of
bool [:[:D : ( ( non empty ) ( non empty ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( ) set ) ,D : ( ( non empty ) ( non empty ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
d : ( ( ) ( )
Element of
D : ( ( non
empty ) ( non
empty )
set ) ) ,
e : ( ( ) ( )
Element of
D : ( ( non
empty ) ( non
empty )
set ) ) #) : ( (
strict ) (
strict )
doubleLoopStr )
-> non
empty strict ;
end;
registration
let T be ( (
trivial ) (
trivial )
set ) ;
let f,
f1 be ( (
V6()
V18(
[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) ,
T : ( (
trivial ) (
trivial )
set ) ) ) (
V6()
V18(
[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) ,
T : ( (
trivial ) (
trivial )
set ) ) )
BinOp of
T : ( (
trivial ) (
trivial )
set ) ) ;
let s,
t be ( ( ) ( )
Element of
T : ( (
trivial ) (
trivial )
set ) ) ;
cluster doubleLoopStr(#
T : ( (
trivial ) (
trivial )
set ) ,
f : ( (
V6()
V18(
[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) ,
T : ( (
trivial ) (
trivial )
set ) ) ) (
V6()
V18(
[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) ,
T : ( (
trivial ) (
trivial )
set ) ) )
Element of
bool [:[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
f1 : ( (
V6()
V18(
[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) ,
T : ( (
trivial ) (
trivial )
set ) ) ) (
V6()
V18(
[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) ,
T : ( (
trivial ) (
trivial )
set ) ) )
Element of
bool [:[:T : ( ( trivial ) ( trivial ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( ) set ) ,T : ( ( trivial ) ( trivial ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
s : ( ( ) ( )
Element of
T : ( (
trivial ) (
trivial )
set ) ) ,
t : ( ( ) ( )
Element of
T : ( (
trivial ) (
trivial )
set ) ) #) : ( (
strict ) (
strict )
doubleLoopStr )
-> trivial strict ;
end;
registration
let N be ( ( non
trivial ) ( non
empty non
trivial )
set ) ;
let b,
b1 be ( (
V6()
V18(
[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) ,
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) ) (
V6()
V18(
[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) ,
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) )
BinOp of
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) ;
let m,
n be ( ( ) ( )
Element of
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) ;
cluster doubleLoopStr(#
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ,
b : ( (
V6()
V18(
[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) ,
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) ) (
V6()
V18(
[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) ,
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) )
Element of
bool [:[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
b1 : ( (
V6()
V18(
[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) ,
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) ) (
V6()
V18(
[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) ,
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) )
Element of
bool [:[:N : ( ( non trivial ) ( non empty non trivial ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( ) set ) ,N : ( ( non trivial ) ( non empty non trivial ) set ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
m : ( ( ) ( )
Element of
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) ,
n : ( ( ) ( )
Element of
N : ( ( non
trivial ) ( non
empty non
trivial )
set ) ) #) : ( (
strict ) ( non
empty strict )
doubleLoopStr )
-> non
trivial strict ;
end;
definition
func Trivial-doubleLoopStr -> ( ( ) ( )
doubleLoopStr )
equals
doubleLoopStr(# 1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ,
op2 : ( (
V6()
V18(
[:1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( )
set ) ,1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ) ) (
V6()
V18(
[:1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( )
set ) ,1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ) )
Element of
bool [:[:1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( ) set ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
op2 : ( (
V6()
V18(
[:1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( )
set ) ,1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ) ) (
V6()
V18(
[:1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( )
set ) ,1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ) )
Element of
bool [:[:1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( ) set ) ,1 : ( ( ) ( non empty V24() V25() V26() V30() V31() cardinal ) Element of K92() : ( ( ) ( non empty V24() V25() V26() V31() cardinal limit_cardinal ) set ) ) :] : ( ( ) ( )
set ) : ( ( ) ( )
set ) ) ,
op0 : ( ( ) (
V24()
V25()
V26() )
Element of 1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ) ,
op0 : ( ( ) (
V24()
V25()
V26() )
Element of 1 : ( ( ) ( non
empty V24()
V25()
V26()
V30()
V31()
cardinal )
Element of
K92() : ( ( ) ( non
empty V24()
V25()
V26()
V31()
cardinal limit_cardinal )
set ) ) ) #) : ( (
strict ) ( non
empty strict )
doubleLoopStr ) ;
end;