Pappus's area theorem
Pappus's area theorem describes the relationship between the areas of three parallelograms attached to three sides of an arbitrary triangle. The theorem, which can also be thought of as a generalization of the Pythagorean theorem, is named after the Greek mathematician Pappus of Alexandria (4th century AD), who discovered it. Theorem. Given an arbitrary triangle with two arbitrary parallelograms attached to two of its sides the theorem tells how to construct a parallelogram over the third side, such that the area of the third parallelogram equals the sum of the areas of the other two  parallelograms. Let "ABC" be the arbitrary triangle and "ABDE" and "ACFG" the two arbitrary parallelograms attached to the triangle sides AB and AC. The extended parallelogram sides DE and FG intersect at H. The line segment AH now "becomes" the side of the third parallelogram BCML attached to the triangle side BC, i.e., one constructs line segments BL and CM over BC, such that BL and CM are a parallel and equal in length to AH. The following identity then holds for the areas (denoted by A) of the parallelograms: The theorem generalizes the Pythagorean theorem twofold. Firstly it works  for arbitrary triangles rather than only for right angled ones and secondly it uses parallelograms rather than squares. For squares on two sides of an arbitrary triangle it yields a parallelogram of equal area over the third side and if the two sides are the legs of a right angle the parallelogram over the third side will be square as well. For a right-angled triangle, two parallelograms attached to the legs of the right angle yield a rectangle of equal area on the third side and again if the two parallelograms are squares then the rectangle on the third  side will be a square as well. Proof. Due to having the same base length and height the parallelograms "ABDE" and "ABUH" have the same area, the same argument applying to the parallelograms "ACFG" and "ACVH", "ABUH" and "BLQR", "ACVH" and "RCMQ". This already yields the desired result, as we have: