let n be non zero Nat; :: thesis: for g1 being Element of (INT.Group n) st g1 = 1 holds
for a2 being Element of (INT.Group 2) st a2 = 1 holds
for x, y, z being Element of (Dihedral_group n) st x = <*g1,(1_ (INT.Group 2))*> & y = <*(1_ (INT.Group n)),a2*> holds
( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) )

let g1 be Element of (INT.Group n); :: thesis: ( g1 = 1 implies for a2 being Element of (INT.Group 2) st a2 = 1 holds
for x, y, z being Element of (Dihedral_group n) st x = <*g1,(1_ (INT.Group 2))*> & y = <*(1_ (INT.Group n)),a2*> holds
( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) ) )

assume A1: g1 = 1 ; :: thesis: for a2 being Element of (INT.Group 2) st a2 = 1 holds
for x, y, z being Element of (Dihedral_group n) st x = <*g1,(1_ (INT.Group 2))*> & y = <*(1_ (INT.Group n)),a2*> holds
( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) )

let a2 be Element of (INT.Group 2); :: thesis: ( a2 = 1 implies for x, y, z being Element of (Dihedral_group n) st x = <*g1,(1_ (INT.Group 2))*> & y = <*(1_ (INT.Group n)),a2*> holds
( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) ) )

assume A2: a2 = 1 ; :: thesis: for x, y, z being Element of (Dihedral_group n) st x = <*g1,(1_ (INT.Group 2))*> & y = <*(1_ (INT.Group n)),a2*> holds
( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) )

let x, y, z be Element of (Dihedral_group n); :: thesis: ( x = <*g1,(1_ (INT.Group 2))*> & y = <*(1_ (INT.Group n)),a2*> implies ( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) ) )
assume A3: x = <*g1,(1_ (INT.Group 2))*> ; :: thesis: ( not y = <*(1_ (INT.Group n)),a2*> or ( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) ) )
assume A4: y = <*(1_ (INT.Group n)),a2*> ; :: thesis: ( z in center (Dihedral_group n) iff ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) )
thus ( z in center (Dihedral_group n) implies ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) ) ) by GROUP_5:77; :: thesis: ( y * z = z * y & ( for i being Nat holds (x |^ i) * z = z * (x |^ i) ) implies z in center (Dihedral_group n) )
assume A6: y * z = z * y ; :: thesis: ( ex i being Nat st not (x |^ i) * z = z * (x |^ i) or z in center (Dihedral_group n) )
assume A7: for i being Nat holds (x |^ i) * z = z * (x |^ i) ; :: thesis: z in center (Dihedral_group n)
for g being Element of (Dihedral_group n) holds z * g = g * z
proof
let g be Element of (Dihedral_group n); :: thesis: z * g = g * z
consider k being Nat such that
B1: ( g = (x |^ k) * y or g = x |^ k ) by A1, A2, A3, A4, Th107;
per cases ( g = (x |^ k) * y or g = x |^ k ) by B1;
suppose B2: g = (x |^ k) * y ; :: thesis: z * g = g * z
hence z * g = (z * (x |^ k)) * y by GROUP_1:def 3
.= ((x |^ k) * z) * y by A7
.= (x |^ k) * (z * y) by GROUP_1:def 3
.= (x |^ k) * (y * z) by A6
.= ((x |^ k) * y) * z by GROUP_1:def 3
.= g * z by B2 ;
:: thesis: verum
end;
suppose B3: g = x |^ k ; :: thesis: z * g = g * z
hence z * g = (x |^ k) * z by A7
.= g * z by B3 ;
:: thesis: verum
end;
end;
end;
hence z in center (Dihedral_group n) by GROUP_5:77; :: thesis: verum