let L be non empty addLoopStr ; :: thesis: for a, b being Element of L st ( for a being Element of L holds a + (0. L) = a ) & ( for a being Element of L ex x being Element of L st a + x = 0. L ) & ( for a, b, c being Element of L holds (a + b) + c = a + (b + c) ) & a + b = 0. L holds
b + a = 0. L

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