reserve SAS for Semi_Affine_Space;
reserve a,a9,a1,a2,a3,a4,b,b9,c,c9,d,d9,d1,d2,o,p,p1,p2,q,r,r1,r2,s,x, y,t,z
  for Element of SAS;

theorem
  o,diff(b,a,o),diff(d,c,o) are_collinear iff a,b // c,d
proof
A1: a,b // c,d implies o,diff(b,a,o),diff(d,c,o) are_collinear
  proof
    assume
A2: a,b // c,d;
A3: now
      o,diff(d,c,o) // c,d by Th88;
      then
A4:   c,d // o,diff(d,c,o) by Th6;
      assume that
A5:   a<>b and
A6:   c <>d;
      o,diff(b,a,o) // a,b by Th88;
      then a,b // o,diff(b,a,o) by Th6;
      then o,diff(b,a,o) // c,d by A2,A5,Def1;
      then o,diff(b,a,o) // o,diff(d,c,o) by A6,A4,Th8;
      hence thesis;
    end;
    now
      assume a=b or c =d;
      then o=diff(b,a,o) or o=diff(d,c,o) by Th87;
      then o,diff(b,a,o) // o,diff(d,c,o) by Def1,Th3;
      hence thesis;
    end;
    hence thesis by A3;
  end;
  o,diff(b,a,o),diff(d,c,o) are_collinear implies a,b // c,d
  proof
    assume
A7: o,diff(b,a,o),diff(d,c,o) are_collinear;
A8: now
A9:   o,diff(d,c,o) // c,d by Th88;
      assume that
A10:  o<>diff(b,a,o) and
A11:  o<>diff(d,c,o);
      o,diff(b,a,o) // o,diff(d,c,o) & o,diff(b,a,o) // a,b by A7,Th88;
      then o,diff(d,c,o) // a,b by A10,Def1;
      hence thesis by A11,A9,Def1;
    end;
    now
      assume o=diff(b,a,o) or o=diff(d,c,o);
      then a=b or c =d by Th87;
      hence thesis by Def1,Th3;
    end;
    hence thesis by A8;
  end;
  hence thesis by A1;
end;
