:: GROUP_1 semantic presentation  Show TPTP formulae Show IDV graph for whole article:: Showing IDV graph ... (Click the Palm Trees again to close it)

definition
attr c1 is strict;
struct HGrStr -> 1-sorted ;
aggr HGrStr(# carrier, mult #) -> HGrStr ;
sel mult c1 -> BinOp of the carrier of c1;
end;

registration
cluster non empty strict HGrStr ;
existence
ex b1 being HGrStr st
( not b1 is empty & b1 is strict )
proof end;
end;

definition
let S be non empty HGrStr ;
let x, y be Element of S;
func x * y -> Element of S equals :: GROUP_1:def 1
the mult of S . x,y;
coherence
the mult of S . x,y is Element of S
;
end;

:: deftheorem defines * GROUP_1:def 1 :
for S being non empty HGrStr
for x, y being Element of S holds x * y = the mult of S . x,y;

registration
let A be non empty set ;
let m be BinOp of A;
cluster HGrStr(# A,m #) -> non empty ;
coherence
not HGrStr(# A,m #) is empty
by STRUCT_0:def 1;
end;

Lm1: now
set G = HGrStr(# REAL ,addreal #);
A1: for h, g being Element of HGrStr(# REAL ,addreal #)
for A, B being Real st h = A & g = B holds
h * g = A + B by BINOP_2:def 9;
thus for h, g, f being Element of HGrStr(# REAL ,addreal #) holds (h * g) * f = h * (g * f) :: thesis: ex e being Element of HGrStr(# REAL ,addreal #) st
for h being Element of HGrStr(# REAL ,addreal #) holds
( h * e = h & e * h = h & ex g being Element of HGrStr(# REAL ,addreal #) st
( h * g = e & g * h = e ) )
proof
let h, g, f be Element of HGrStr(# REAL ,addreal #); :: thesis: (h * g) * f = h * (g * f)
reconsider A = h, B = g, C = f as Real ;
A2: h * g = A + B by A1;
A3: g * f = B + C by A1;
thus (h * g) * f = (A + B) + C by A1, A2
.= A + (B + C)
.= h * (g * f) by A1, A3 ; :: thesis: verum
end;
reconsider e = 0 as Element of HGrStr(# REAL ,addreal #) ;
take e = e; :: thesis: for h being Element of HGrStr(# REAL ,addreal #) holds
( h * e = h & e * h = h & ex g being Element of HGrStr(# REAL ,addreal #) st
( h * g = e & g * h = e ) )

let h be Element of HGrStr(# REAL ,addreal #); :: thesis: ( h * e = h & e * h = h & ex g being Element of HGrStr(# REAL ,addreal #) st
( h * g = e & g * h = e ) )

reconsider A = h as Real ;
thus h * e = A + 0 by A1
.= h ; :: thesis: ( e * h = h & ex g being Element of HGrStr(# REAL ,addreal #) st
( h * g = e & g * h = e ) )

thus e * h = 0 + A by A1
.= h ; :: thesis: ex g being Element of HGrStr(# REAL ,addreal #) st
( h * g = e & g * h = e )

reconsider g = - A as Element of HGrStr(# REAL ,addreal #) ;
take g = g; :: thesis: ( h * g = e & g * h = e )
thus h * g = A + (- A) by A1
.= e ; :: thesis: g * h = e
thus g * h = (- A) + A by A1
.= e ; :: thesis: verum
end;

definition
let IT be non empty HGrStr ;
attr IT is unital means :Def2: :: GROUP_1:def 2
ex e being Element of IT st
for h being Element of IT holds
( h * e = h & e * h = h );
attr IT is Group-like means :Def3: :: GROUP_1:def 3
ex e being Element of IT st
for h being Element of IT holds
( h * e = h & e * h = h & ex g being Element of IT st
( h * g = e & g * h = e ) );
attr IT is associative means :Def4: :: GROUP_1:def 4
for x, y, z being Element of IT holds (x * y) * z = x * (y * z);
end;

:: deftheorem Def2 defines unital GROUP_1:def 2 :
for IT being non empty HGrStr holds
( IT is unital iff ex e being Element of IT st
for h being Element of IT holds
( h * e = h & e * h = h ) );

:: deftheorem Def3 defines Group-like GROUP_1:def 3 :
for IT being non empty HGrStr holds
( IT is Group-like iff ex e being Element of IT st
for h being Element of IT holds
( h * e = h & e * h = h & ex g being Element of IT st
( h * g = e & g * h = e ) ) );

:: deftheorem Def4 defines associative GROUP_1:def 4 :
for IT being non empty HGrStr holds
( IT is associative iff for x, y, z being Element of IT holds (x * y) * z = x * (y * z) );

registration
cluster non empty Group-like -> non empty unital HGrStr ;
coherence
for b1 being non empty HGrStr st b1 is Group-like holds
b1 is unital
proof end;
end;

registration
cluster non empty strict unital Group-like associative HGrStr ;
existence
ex b1 being non empty HGrStr st
( b1 is strict & b1 is Group-like & b1 is associative )
proof end;
end;

definition
mode Group is non empty Group-like associative HGrStr ;
end;

theorem :: GROUP_1:1  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:2  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:3  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:4  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:5  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for S being non empty HGrStr st ( for r, s, t being Element of S holds (r * s) * t = r * (s * t) ) & ex t being Element of S st
for s1 being Element of S holds
( s1 * t = s1 & t * s1 = s1 & ex s2 being Element of S st
( s1 * s2 = t & s2 * s1 = t ) ) holds
S is Group by Def3, Def4;

theorem :: GROUP_1:6  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for S being non empty HGrStr st ( for r, s, t being Element of S holds (r * s) * t = r * (s * t) ) & ( for r, s being Element of S holds
( ex t being Element of S st r * t = s & ex t being Element of S st t * r = s ) ) holds
( S is associative & S is Group-like )
proof end;

theorem Th7: :: GROUP_1:7  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
( HGrStr(# REAL ,addreal #) is associative & HGrStr(# REAL ,addreal #) is Group-like )
proof end;

definition
let G be non empty HGrStr ;
assume A1: G is unital ;
func 1. G -> Element of G means :Def5: :: GROUP_1:def 5
for h being Element of G holds
( h * it = h & it * h = h );
existence
ex b1 being Element of G st
for h being Element of G holds
( h * b1 = h & b1 * h = h )
by A1, Def2;
uniqueness
for b1, b2 being Element of G st ( for h being Element of G holds
( h * b1 = h & b1 * h = h ) ) & ( for h being Element of G holds
( h * b2 = h & b2 * h = h ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def5 defines 1. GROUP_1:def 5 :
for G being non empty HGrStr st G is unital holds
for b2 being Element of G holds
( b2 = 1. G iff for h being Element of G holds
( h * b2 = h & b2 * h = h ) );

theorem :: GROUP_1:8  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:9  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:10  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being non empty Group-like HGrStr
for e being Element of G st ( for h being Element of G holds
( h * e = h & e * h = h ) ) holds
e = 1. G by Def5;

definition
let G be Group;
let h be Element of G;
func h " -> Element of G means :Def6: :: GROUP_1:def 6
( h * it = 1. G & it * h = 1. G );
existence
ex b1 being Element of G st
( h * b1 = 1. G & b1 * h = 1. G )
proof end;
uniqueness
for b1, b2 being Element of G st h * b1 = 1. G & b1 * h = 1. G & h * b2 = 1. G & b2 * h = 1. G holds
b1 = b2
proof end;
end;

:: deftheorem Def6 defines " GROUP_1:def 6 :
for G being Group
for h, b3 being Element of G holds
( b3 = h " iff ( h * b3 = 1. G & b3 * h = 1. G ) );

theorem :: GROUP_1:11  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:12  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, g being Element of G st h * g = 1. G & g * h = 1. G holds
g = h " by Def6;

theorem :: GROUP_1:13  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem Th14: :: GROUP_1:14  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, g, f being Element of G st ( h * g = h * f or g * h = f * h ) holds
g = f
proof end;

theorem :: GROUP_1:15  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, g being Element of G st ( h * g = h or g * h = h ) holds
g = 1. G
proof end;

theorem Th16: :: GROUP_1:16  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group holds (1. G) " = 1. G
proof end;

theorem Th17: :: GROUP_1:17  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, g being Element of G st h " = g " holds
h = g
proof end;

theorem :: GROUP_1:18  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G st h " = 1. G holds
h = 1. G
proof end;

theorem Th19: :: GROUP_1:19  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds (h " ) " = h
proof end;

theorem Th20: :: GROUP_1:20  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, g being Element of G st ( h * g = 1. G or g * h = 1. G ) holds
( h = g " & g = h " )
proof end;

theorem Th21: :: GROUP_1:21  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, f, g being Element of G holds
( h * f = g iff f = (h " ) * g )
proof end;

theorem Th22: :: GROUP_1:22  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for f, h, g being Element of G holds
( f * h = g iff f = g * (h " ) )
proof end;

theorem :: GROUP_1:23  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for g, h being Element of G ex f being Element of G st g * f = h
proof end;

theorem :: GROUP_1:24  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for g, h being Element of G ex f being Element of G st f * g = h
proof end;

theorem Th25: :: GROUP_1:25  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h, g being Element of G holds (h * g) " = (g " ) * (h " )
proof end;

theorem Th26: :: GROUP_1:26  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for g, h being Element of G holds
( g * h = h * g iff (g * h) " = (g " ) * (h " ) )
proof end;

theorem Th27: :: GROUP_1:27  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for g, h being Element of G holds
( g * h = h * g iff (g " ) * (h " ) = (h " ) * (g " ) )
proof end;

theorem Th28: :: GROUP_1:28  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for g, h being Element of G holds
( g * h = h * g iff g * (h " ) = (h " ) * g )
proof end;

definition
let G be Group;
func inverse_op G -> UnOp of the carrier of G means :Def7: :: GROUP_1:def 7
for h being Element of G holds it . h = h " ;
existence
ex b1 being UnOp of the carrier of G st
for h being Element of G holds b1 . h = h "
proof end;
uniqueness
for b1, b2 being UnOp of the carrier of G st ( for h being Element of G holds b1 . h = h " ) & ( for h being Element of G holds b2 . h = h " ) holds
b1 = b2
proof end;
end;

:: deftheorem Def7 defines inverse_op GROUP_1:def 7 :
for G being Group
for b2 being UnOp of the carrier of G holds
( b2 = inverse_op G iff for h being Element of G holds b2 . h = h " );

theorem :: GROUP_1:29  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:30  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem Th31: :: GROUP_1:31  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being non empty associative HGrStr holds the mult of G is associative
proof end;

theorem Th32: :: GROUP_1:32  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being non empty unital HGrStr holds 1. G is_a_unity_wrt the mult of G
proof end;

theorem Th33: :: GROUP_1:33  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being non empty unital HGrStr holds the_unity_wrt the mult of G = 1. G
proof end;

theorem Th34: :: GROUP_1:34  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being non empty unital HGrStr holds the mult of G has_a_unity
proof end;

theorem Th35: :: GROUP_1:35  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group holds inverse_op G is_an_inverseOp_wrt the mult of G
proof end;

theorem Th36: :: GROUP_1:36  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group holds the mult of G has_an_inverseOp
proof end;

theorem :: GROUP_1:37  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group holds the_inverseOp_wrt the mult of G = inverse_op G
proof end;

definition
let G be non empty HGrStr ;
func power G -> Function of [:the carrier of G,NAT :],the carrier of G means :Def8: :: GROUP_1:def 8
for h being Element of G holds
( it . h,0 = 1. G & ( for n being Nat holds it . h,(n + 1) = (it . h,n) * h ) );
existence
ex b1 being Function of [:the carrier of G,NAT :],the carrier of G st
for h being Element of G holds
( b1 . h,0 = 1. G & ( for n being Nat holds b1 . h,(n + 1) = (b1 . h,n) * h ) )
proof end;
uniqueness
for b1, b2 being Function of [:the carrier of G,NAT :],the carrier of G st ( for h being Element of G holds
( b1 . h,0 = 1. G & ( for n being Nat holds b1 . h,(n + 1) = (b1 . h,n) * h ) ) ) & ( for h being Element of G holds
( b2 . h,0 = 1. G & ( for n being Nat holds b2 . h,(n + 1) = (b2 . h,n) * h ) ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def8 defines power GROUP_1:def 8 :
for G being non empty HGrStr
for b2 being Function of [:the carrier of G,NAT :],the carrier of G holds
( b2 = power G iff for h being Element of G holds
( b2 . h,0 = 1. G & ( for n being Nat holds b2 . h,(n + 1) = (b2 . h,n) * h ) ) );

definition
let G be Group;
let i be Integer;
let h be Element of G;
func h |^ i -> Element of G equals :Def9: :: GROUP_1:def 9
(power G) . h,(abs i) if 0 <= i
otherwise ((power G) . h,(abs i)) " ;
correctness
coherence
( ( 0 <= i implies (power G) . h,(abs i) is Element of G ) & ( not 0 <= i implies ((power G) . h,(abs i)) " is Element of G ) )
;
consistency
for b1 being Element of G holds verum
;
;
end;

:: deftheorem Def9 defines |^ GROUP_1:def 9 :
for G being Group
for i being Integer
for h being Element of G holds
( ( 0 <= i implies h |^ i = (power G) . h,(abs i) ) & ( not 0 <= i implies h |^ i = ((power G) . h,(abs i)) " ) );

definition
let G be Group;
let n be Nat;
let h be Element of G;
redefine func h |^ n equals :: GROUP_1:def 10
(power G) . h,n;
compatibility
for b1 being Element of G holds
( b1 = h |^ n iff b1 = (power G) . h,n )
proof end;
end;

:: deftheorem defines |^ GROUP_1:def 10 :
for G being Group
for n being Nat
for h being Element of G holds h |^ n = (power G) . h,n;

Lm2: for n being Nat
for G being Group
for h being Element of G holds h |^ (n + 1) = (h |^ n) * h
by Def8;

Lm3: for G being Group
for h being Element of G holds h |^ 0 = 1. G
by Def8;

theorem :: GROUP_1:38  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:39  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:40  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:41  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem Th42: :: GROUP_1:42  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group holds (1. G) |^ n = 1. G
proof end;

theorem :: GROUP_1:43  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds h |^ 0 = 1. G by Lm3;

theorem Th44: :: GROUP_1:44  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds h |^ 1 = h
proof end;

theorem Th45: :: GROUP_1:45  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds h |^ 2 = h * h
proof end;

theorem :: GROUP_1:46  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds h |^ 3 = (h * h) * h
proof end;

theorem :: GROUP_1:47  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds
( h |^ 2 = 1. G iff h " = h )
proof end;

theorem Th48: :: GROUP_1:48  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n, m being Nat
for G being Group
for h being Element of G holds h |^ (n + m) = (h |^ n) * (h |^ m)
proof end;

theorem Th49: :: GROUP_1:49  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group
for h being Element of G holds
( h |^ (n + 1) = (h |^ n) * h & h |^ (n + 1) = h * (h |^ n) )
proof end;

theorem Th50: :: GROUP_1:50  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n, m being Nat
for G being Group
for h being Element of G holds h |^ (n * m) = (h |^ n) |^ m
proof end;

theorem Th51: :: GROUP_1:51  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group
for h being Element of G holds (h " ) |^ n = (h |^ n) "
proof end;

theorem Th52: :: GROUP_1:52  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group
for g, h being Element of G st g * h = h * g holds
g * (h |^ n) = (h |^ n) * g
proof end;

theorem Th53: :: GROUP_1:53  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n, m being Nat
for G being Group
for g, h being Element of G st g * h = h * g holds
(g |^ n) * (h |^ m) = (h |^ m) * (g |^ n)
proof end;

theorem Th54: :: GROUP_1:54  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group
for g, h being Element of G st g * h = h * g holds
(g * h) |^ n = (g |^ n) * (h |^ n)
proof end;

theorem Th55: :: GROUP_1:55  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for h being Element of G st 0 <= i holds
h |^ i = h |^ (abs i) by Def9;

theorem Th56: :: GROUP_1:56  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for h being Element of G st not 0 <= i holds
h |^ i = (h |^ (abs i)) " by Def9;

theorem :: GROUP_1:57  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:58  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:59  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for h being Element of G st i = 0 holds
h |^ i = 1. G by Lm3;

theorem Th60: :: GROUP_1:60  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for h being Element of G st i <= 0 holds
h |^ i = (h |^ (abs i)) "
proof end;

theorem :: GROUP_1:61  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group holds (1. G) |^ i = 1. G
proof end;

theorem Th62: :: GROUP_1:62  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds h |^ (- 1) = h "
proof end;

Lm4: for i being Integer
for G being Group
for h being Element of G holds h |^ (- i) = (h |^ i) "
proof end;

Lm5: for j being Integer holds
( j >= 1 or j = 0 or j < 0 )
proof end;

Lm6: for j being Integer
for G being Group
for h being Element of G holds h |^ (j - 1) = (h |^ j) * (h |^ (- 1))
proof end;

Lm7: for j being Integer holds
( j >= 0 or j = - 1 or j < - 1 )
proof end;

Lm8: for j being Integer
for G being Group
for h being Element of G holds h |^ (j + 1) = (h |^ j) * (h |^ 1)
proof end;

theorem Th63: :: GROUP_1:63  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i, j being Integer
for G being Group
for h being Element of G holds h |^ (i + j) = (h |^ i) * (h |^ j)
proof end;

theorem :: GROUP_1:64  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for j being Integer
for G being Group
for h being Element of G holds h |^ (n + j) = (h |^ n) * (h |^ j) by Th63;

theorem :: GROUP_1:65  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for m being Nat
for i being Integer
for G being Group
for h being Element of G holds h |^ (i + m) = (h |^ i) * (h |^ m) by Th63;

theorem :: GROUP_1:66  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for j being Integer
for G being Group
for h being Element of G holds
( h |^ (j + 1) = (h |^ j) * h & h |^ (j + 1) = h * (h |^ j) )
proof end;

Lm9: for i being Integer
for G being Group
for h being Element of G holds (h " ) |^ i = (h |^ i) "
proof end;

theorem Th67: :: GROUP_1:67  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i, j being Integer
for G being Group
for h being Element of G holds h |^ (i * j) = (h |^ i) |^ j
proof end;

theorem :: GROUP_1:68  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for j being Integer
for G being Group
for h being Element of G holds h |^ (n * j) = (h |^ n) |^ j by Th67;

theorem :: GROUP_1:69  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for m being Nat
for i being Integer
for G being Group
for h being Element of G holds h |^ (i * m) = (h |^ i) |^ m by Th67;

theorem :: GROUP_1:70  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for h being Element of G holds h |^ (- i) = (h |^ i) " by Lm4;

theorem :: GROUP_1:71  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group
for h being Element of G holds h |^ (- n) = (h |^ n) " by Lm4;

theorem :: GROUP_1:72  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for h being Element of G holds (h " ) |^ i = (h |^ i) " by Lm9;

theorem Th73: :: GROUP_1:73  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for g, h being Element of G st g * h = h * g holds
(g * h) |^ i = (g |^ i) * (h |^ i)
proof end;

theorem Th74: :: GROUP_1:74  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i, j being Integer
for G being Group
for g, h being Element of G st g * h = h * g holds
(g |^ i) * (h |^ j) = (h |^ j) * (g |^ i)
proof end;

theorem :: GROUP_1:75  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for j being Integer
for G being Group
for g, h being Element of G st g * h = h * g holds
(g |^ n) * (h |^ j) = (h |^ j) * (g |^ n) by Th74;

theorem :: GROUP_1:76  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:77  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for G being Group
for g, h being Element of G st g * h = h * g holds
g * (h |^ i) = (h |^ i) * g
proof end;

definition
let G be Group;
let h be Element of G;
attr h is being_of_order_0 means :Def11: :: GROUP_1:def 11
for n being Nat st h |^ n = 1. G holds
n = 0;
end;

:: deftheorem Def11 defines being_of_order_0 GROUP_1:def 11 :
for G being Group
for h being Element of G holds
( h is being_of_order_0 iff for n being Nat st h |^ n = 1. G holds
n = 0 );

notation
let G be Group;
let h be Element of G;
antonym h is_not_of_order_0 for being_of_order_0 h;
synonym h is_of_order_0 for being_of_order_0 h;
end;

theorem :: GROUP_1:78  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem Th79: :: GROUP_1:79  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group holds 1. G is_not_of_order_0
proof end;

definition
let G be Group;
let h be Element of G;
func ord h -> Nat means :Def12: :: GROUP_1:def 12
it = 0 if h is_of_order_0
otherwise ( h |^ it = 1. G & it <> 0 & ( for m being Nat st h |^ m = 1. G & m <> 0 holds
it <= m ) );
existence
( ( h is_of_order_0 implies ex b1 being Nat st b1 = 0 ) & ( not h is_of_order_0 implies ex b1 being Nat st
( h |^ b1 = 1. G & b1 <> 0 & ( for m being Nat st h |^ m = 1. G & m <> 0 holds
b1 <= m ) ) ) )
proof end;
uniqueness
for b1, b2 being Nat holds
( ( h is_of_order_0 & b1 = 0 & b2 = 0 implies b1 = b2 ) & ( not h is_of_order_0 & h |^ b1 = 1. G & b1 <> 0 & ( for m being Nat st h |^ m = 1. G & m <> 0 holds
b1 <= m ) & h |^ b2 = 1. G & b2 <> 0 & ( for m being Nat st h |^ m = 1. G & m <> 0 holds
b2 <= m ) implies b1 = b2 ) )
proof end;
correctness
consistency
for b1 being Nat holds verum
;
;
end;

:: deftheorem Def12 defines ord GROUP_1:def 12 :
for G being Group
for h being Element of G
for b3 being Nat holds
( ( h is_of_order_0 implies ( b3 = ord h iff b3 = 0 ) ) & ( not h is_of_order_0 implies ( b3 = ord h iff ( h |^ b3 = 1. G & b3 <> 0 & ( for m being Nat st h |^ m = 1. G & m <> 0 holds
b3 <= m ) ) ) ) );

theorem :: GROUP_1:80  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:81  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem Th82: :: GROUP_1:82  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G holds h |^ (ord h) = 1. G
proof end;

theorem :: GROUP_1:83  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:84  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group holds ord (1. G) = 1
proof end;

theorem :: GROUP_1:85  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group
for h being Element of G st ord h = 1 holds
h = 1. G
proof end;

theorem :: GROUP_1:86  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Group
for h being Element of G st h |^ n = 1. G holds
ord h divides n
proof end;

definition
let G be Group;
func Ord G -> Cardinal equals :: GROUP_1:def 13
Card the carrier of G;
correctness
coherence
Card the carrier of G is Cardinal
;
;
end;

:: deftheorem defines Ord GROUP_1:def 13 :
for G being Group holds Ord G = Card the carrier of G;

definition
let S be 1-sorted ;
attr S is finite means :Def14: :: GROUP_1:def 14
the carrier of S is finite;
end;

:: deftheorem Def14 defines finite GROUP_1:def 14 :
for S being 1-sorted holds
( S is finite iff the carrier of S is finite );

notation
let S be 1-sorted ;
antonym infinite S for finite S;
end;

definition
let G be Group;
assume A1: G is finite ;
func ord G -> Nat means :Def15: :: GROUP_1:def 15
ex B being finite set st
( B = the carrier of G & it = card B );
existence
ex b1 being Nat ex B being finite set st
( B = the carrier of G & b1 = card B )
proof end;
correctness
uniqueness
for b1, b2 being Nat st ex B being finite set st
( B = the carrier of G & b1 = card B ) & ex B being finite set st
( B = the carrier of G & b2 = card B ) holds
b1 = b2
;
;
end;

:: deftheorem Def15 defines ord GROUP_1:def 15 :
for G being Group st G is finite holds
for b2 being Nat holds
( b2 = ord G iff ex B being finite set st
( B = the carrier of G & b2 = card B ) );

theorem :: GROUP_1:87  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:88  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:89  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:90  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Group st G is finite holds
ord G >= 1
proof end;

reconsider G0 = HGrStr(# REAL ,addreal #) as Group by Th7;

definition
let IT be non empty HGrStr ;
attr IT is commutative means :Def16: :: GROUP_1:def 16
for x, y being Element of IT holds x * y = y * x;
end;

:: deftheorem Def16 defines commutative GROUP_1:def 16 :
for IT being non empty HGrStr holds
( IT is commutative iff for x, y being Element of IT holds x * y = y * x );

registration
cluster strict commutative HGrStr ;
existence
ex b1 being Group st
( b1 is strict & b1 is commutative )
proof end;
end;

definition
let FS be non empty commutative HGrStr ;
let x, y be Element of FS;
:: original: *
redefine func x * y -> Element of FS;
commutativity
for x, y being Element of FS holds x * y = y * x
by Def16;
end;

theorem :: GROUP_1:91  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:92  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
HGrStr(# REAL ,addreal #) is commutative Group
proof end;

theorem :: GROUP_1:93  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GROUP_1:94  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for A being commutative Group
for a, b being Element of A holds (a * b) " = (a " ) * (b " ) by Th25;

theorem :: GROUP_1:95  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for A being commutative Group
for a, b being Element of A holds (a * b) |^ n = (a |^ n) * (b |^ n) by Th54;

theorem :: GROUP_1:96  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for i being Integer
for A being commutative Group
for a, b being Element of A holds (a * b) |^ i = (a |^ i) * (b |^ i) by Th73;

registration
let A be non empty set ;
let m be BinOp of A;
let u be Element of A;
cluster LoopStr(# A,m,u #) -> non empty ;
coherence
not LoopStr(# A,m,u #) is empty
by STRUCT_0:def 1;
end;

theorem :: GROUP_1:97  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for A being commutative Group holds
( LoopStr(# the carrier of A,the mult of A,(1. A) #) is Abelian & LoopStr(# the carrier of A,the mult of A,(1. A) #) is add-associative & LoopStr(# the carrier of A,the mult of A,(1. A) #) is right_zeroed & LoopStr(# the carrier of A,the mult of A,(1. A) #) is right_complementable )
proof end;