reserve x,y,z for Real,
  x3,y3 for Real,
  p for Point of TOP-REAL 3;
reserve p1,p2,p3,p4 for Point of TOP-REAL 3,
  x1,x2,y1,y2,z1,z2 for Real;

theorem
  p1 <X> ( p2<X>p3 ) = |(p1,p3)| * p2  -  |(p1,p2)| * p3
proof
A1: (p1`2*((p2`1 * p3`2) - (p2`2 * p3`1))) - (p1`3*((p2`3 * p3`1) - (p2`1 *
p3`3) )) = (p1`2*p3`2 + p1`3*p3`3 + p1`1*p3`1)*p2`1 - (p1`2*p2`2 + p1`3*p2`3 +
p1`1* p2`1)*p3`1 & (p1`3*((p2`2 * p3`3) - (p2`3 * p3`2))) - (p1`1*((p2`1 * p3`2
) - ( p2`2 * p3`1))) = (p1`3*p3`3 + p1`1*p3`1 + p1`2*p3`2)*p2`2 - (p1`3*p2`3 +
  p1`1* p2`1 + p1`2*p2`2)*p3`2;
A2: (p1`1*((p2`3 * p3`1) - (p2`1 * p3`3))) - (p1`2*((p2`2 * p3`3) - (p2`3 *
  p3`2))) = (p1`1*p3`1 + p1`2*p3`2 + p1`3*p3`3)*p2`3 - (p1`1*p2`1 + p1`2*p2`2 +
  p1`3*p2`3)*p3`3;
  p1 <X> (p2 <X> p3) = |[ (p1`1*p3`1 + p1`2*p3`2 + p1`3*p3`3)*p2`1, (p1`1*
p3`1 + p1`2*p3`2 + p1`3*p3`3)*p2`2, (p1`1*p3`1 + p1`2*p3`2 + p1`3*p3`3)*p2`3 ]|
- |[ (p1`1*p2`1 + p1`2*p2`2 + p1`3*p2`3)*p3`1, (p1`1*p2`1 + p1`2*p2`2 + p1`3*p2
  `3)*p3`2, (p1`1*p2`1 + p1`2*p2`2 + p1`3*p2`3)*p3`3 ]| by A1,A2,Th13
    .= (p1`1*p3`1 + p1`2*p3`2 + p1`3*p3`3) * |[p2`1, p2`2, p2`3 ]| - |[ (p1
`1*p2`1 + p1`2*p2`2 + p1`3*p2`3)*p3`1, (p1`1*p2`1 + p1`2*p2`2 + p1`3*p2`3)*p3`2
  , (p1`1*p2`1 + p1`2*p2`2 + p1`3*p2`3)*p3`3 ]| by Th8
    .= (p1`1*p3`1 + p1`2*p3`2 + p1`3*p3`3) * |[ p2`1, p2`2, p2`3 ]| - (p1`1*
  p2`1 + p1`2*p2`2 + p1`3*p2`3) * |[ p3`1, p3`2, p3`3 ]| by Th8
    .= |(p1, p3)| * |[ p2`1, p2`2, p2`3 ]| - (p1`1*p2`1 + p1`2*p2`2 + p1`3*
  p2`3) * |[ p3`1, p3`2, p3`3 ]| by Th29
    .= |(p1, p3)| * |[ p2`1, p2`2, p2`3 ]| - |(p1, p2 )| * |[ p3`1, p3`2, p3
  `3 ]| by Th29
    .= |(p1, p3)| * p2 - |(p1, p2 )| * |[ p3`1, p3`2, p3`3 ]| by Th3;
  hence thesis by Th3;
end;
