let ADG be Uniquely_Two_Divisible_Group; :: thesis: ( ex a, b being Element of ADG st a <> b implies ( ex a, b being Element of (AV ADG) st a <> b & ( for a, b, c being Element of (AV ADG) st a,b // c,c holds
a = b ) & ( for a, b, c, d, p, q being Element of (AV ADG) st a,b // p,q & c,d // p,q holds
a,b // c,d ) & ( for a, b, c being Element of (AV ADG) ex d being Element of (AV ADG) st a,b // c,d ) & ( for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' ) & ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) ) )

assume A1: ex a, b being Element of ADG st a <> b ; :: thesis: ( ex a, b being Element of (AV ADG) st a <> b & ( for a, b, c being Element of (AV ADG) st a,b // c,c holds
a = b ) & ( for a, b, c, d, p, q being Element of (AV ADG) st a,b // p,q & c,d // p,q holds
a,b // c,d ) & ( for a, b, c being Element of (AV ADG) ex d being Element of (AV ADG) st a,b // c,d ) & ( for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' ) & ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )

set A = AV ADG;
A2: AV ADG = AffinStruct(# the carrier of ADG,(CONGRD ADG) #) ;
A3: for a', b', c', d' being Element of (AV ADG)
for a, b, c, d being Element of ADG st a = a' & b = b' & c = c' & d = d' holds
( a,b ==> c,d iff a',b' // c',d' )
proof
let a', b', c', d' be Element of (AV ADG); :: thesis: for a, b, c, d being Element of ADG st a = a' & b = b' & c = c' & d = d' holds
( a,b ==> c,d iff a',b' // c',d' )

let a, b, c, d be Element of ADG; :: thesis: ( a = a' & b = b' & c = c' & d = d' implies ( a,b ==> c,d iff a',b' // c',d' ) )
assume A4: ( a = a' & b = b' & c = c' & d = d' ) ; :: thesis: ( a,b ==> c,d iff a',b' // c',d' )
A5: now
assume a,b ==> c,d ; :: thesis: a',b' // c',d'
then [[a,b],[c,d]] in CONGRD ADG by A2, Def6;
hence a',b' // c',d' by A4, ANALOAF:def 2; :: thesis: verum
end;
now
assume a',b' // c',d' ; :: thesis: a,b ==> c,d
then [[a,b],[c,d]] in CONGRD ADG by A4, ANALOAF:def 2;
hence a,b ==> c,d by A2, Def6; :: thesis: verum
end;
hence ( a,b ==> c,d iff a',b' // c',d' ) by A5; :: thesis: verum
end;
thus ex a, b being Element of (AV ADG) st a <> b by A1; :: thesis: ( ( for a, b, c being Element of (AV ADG) st a,b // c,c holds
a = b ) & ( for a, b, c, d, p, q being Element of (AV ADG) st a,b // p,q & c,d // p,q holds
a,b // c,d ) & ( for a, b, c being Element of (AV ADG) ex d being Element of (AV ADG) st a,b // c,d ) & ( for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' ) & ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )

thus for a, b, c being Element of (AV ADG) st a,b // c,c holds
a = b :: thesis: ( ( for a, b, c, d, p, q being Element of (AV ADG) st a,b // p,q & c,d // p,q holds
a,b // c,d ) & ( for a, b, c being Element of (AV ADG) ex d being Element of (AV ADG) st a,b // c,d ) & ( for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' ) & ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )
proof
let a, b, c be Element of (AV ADG); :: thesis: ( a,b // c,c implies a = b )
assume A6: a,b // c,c ; :: thesis: a = b
reconsider a' = a, b' = b, c' = c as Element of ADG ;
a',b' ==> c',c' by A3, A6;
hence a = b by Th13; :: thesis: verum
end;
thus for a, b, c, d, p, q being Element of (AV ADG) st a,b // p,q & c,d // p,q holds
a,b // c,d :: thesis: ( ( for a, b, c being Element of (AV ADG) ex d being Element of (AV ADG) st a,b // c,d ) & ( for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' ) & ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )
proof
let a, b, c, d, p, q be Element of (AV ADG); :: thesis: ( a,b // p,q & c,d // p,q implies a,b // c,d )
assume A7: ( a,b // p,q & c,d // p,q ) ; :: thesis: a,b // c,d
reconsider a' = a, b' = b, c' = c, d' = d, p' = p, q' = q as Element of ADG ;
( a',b' ==> p',q' & c',d' ==> p',q' ) by A3, A7;
then a',b' ==> c',d' by Th14;
hence a,b // c,d by A3; :: thesis: verum
end;
thus for a, b, c being Element of (AV ADG) ex d being Element of (AV ADG) st a,b // c,d :: thesis: ( ( for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' ) & ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )
proof
let a, b, c be Element of (AV ADG); :: thesis: ex d being Element of (AV ADG) st a,b // c,d
reconsider a' = a, b' = b, c' = c as Element of ADG ;
consider d' being Element of ADG such that
A8: a',b' ==> c',d' by Th15;
reconsider d = d' as Element of (AV ADG) ;
take d ; :: thesis: a,b // c,d
thus a,b // c,d by A3, A8; :: thesis: verum
end;
thus for a, b, c, a', b', c' being Element of (AV ADG) st a,b // a',b' & a,c // a',c' holds
b,c // b',c' :: thesis: ( ( for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c ) & ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )
proof
let a, b, c, a', b', c' be Element of (AV ADG); :: thesis: ( a,b // a',b' & a,c // a',c' implies b,c // b',c' )
assume A9: ( a,b // a',b' & a,c // a',c' ) ; :: thesis: b,c // b',c'
reconsider p = a, q = b, r = c, p' = a', q' = b', r' = c' as Element of ADG ;
( p,q ==> p',q' & p,r ==> p',r' ) by A3, A9;
then q,r ==> q',r' by Th16;
hence b,c // b',c' by A3; :: thesis: verum
end;
thus for a, c being Element of (AV ADG) ex b being Element of (AV ADG) st a,b // b,c :: thesis: ( ( for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' ) & ( for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d ) )
proof
let a, c be Element of (AV ADG); :: thesis: ex b being Element of (AV ADG) st a,b // b,c
reconsider a' = a, c' = c as Element of ADG ;
consider b' being Element of the carrier of ADG such that
A10: a',b' ==> b',c' by Th17;
reconsider b = b' as Element of (AV ADG) ;
take b ; :: thesis: a,b // b,c
thus a,b // b,c by A3, A10; :: thesis: verum
end;
thus for a, b, c, b' being Element of (AV ADG) st a,b // b,c & a,b' // b',c holds
b = b' :: thesis: for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d
proof
let a, b, c, b' be Element of (AV ADG); :: thesis: ( a,b // b,c & a,b' // b',c implies b = b' )
assume A11: ( a,b // b,c & a,b' // b',c ) ; :: thesis: b = b'
reconsider a' = a, p = b, c' = c, p' = b' as Element of ADG ;
( a',p ==> p,c' & a',p' ==> p',c' ) by A3, A11;
hence b = b' by Th18; :: thesis: verum
end;
thus for a, b, c, d being Element of (AV ADG) st a,b // c,d holds
a,c // b,d :: thesis: verum
proof
let a, b, c, d be Element of (AV ADG); :: thesis: ( a,b // c,d implies a,c // b,d )
assume A12: a,b // c,d ; :: thesis: a,c // b,d
reconsider a' = a, b' = b, c' = c, d' = d as Element of ADG ;
a',b' ==> c',d' by A3, A12;
then a',c' ==> b',d' by Th19;
hence a,c // b,d by A3; :: thesis: verum
end;