let L be non empty multLoopStr ; :: thesis: for a, b being Element of L st ( for a being Element of L holds a * (1. L) = a ) & ( for a being Element of L ex x being Element of L st a * x = 1. L ) & ( for a, b, c being Element of L holds (a * b) * c = a * (b * c) ) & a * b = 1. L holds
b * a = 1. L
let a, b be Element of L; :: thesis: ( ( for a being Element of L holds a * (1. L) = a ) & ( for a being Element of L ex x being Element of L st a * x = 1. L ) & ( for a, b, c being Element of L holds (a * b) * c = a * (b * c) ) & a * b = 1. L implies b * a = 1. L )
assume A1:
( ( for a being Element of L holds a * (1. L) = a ) & ( for a being Element of L ex x being Element of L st a * x = 1. L ) & ( for a, b, c being Element of L holds (a * b) * c = a * (b * c) ) )
; :: thesis: ( not a * b = 1. L or b * a = 1. L )
assume A2:
a * b = 1. L
; :: thesis: b * a = 1. L
consider x being Element of L such that
A3:
b * x = 1. L
by A1;
thus b * a =
(b * a) * (b * x)
by A1, A3
.=
((b * a) * b) * x
by A1
.=
(b * (1. L)) * x
by A1, A2
.=
1. L
by A1, A3
; :: thesis: verum