I started a grad class in Knowledge Based AI, and the main project requires students to write AI that solves as many problems as possible on Raven's Progressive Matrix (RPM).

RPM is an IQ test that is purely geometric and was designed by John Carlyle Raven who was dyslexic to help test individuals who struggled with verbal IQ tests.

Writing AI is time consuming! I had difficulty at first, started making discoveries, then had a handle on the data where I could answer questions right at will. But I still hadn't taught my AI how to answer questions autonomously.

It took a couple days, but my AI can recognize a square and a circle and answer many simple questions, but identifying a right triangle proved to be tricky.

After analyzing data on a few shapes, I realized that right triangles were not symmetric on the X or Y axis, but only on the XY axis.

This lead to the idea of detecting a right triangle through other tricks more clever than a quick symmetry check.

I looked at my sketches and wondered if removing a square that was half the height of the triangle would result in two congruent right triangles.

If you consider a triangle with a height of 4 units and a base of 4 units, my hypothesis should result in two triangles that both have a base and height of 2 units.

Here is the process I used to prove this is true.

Area of triangle - Area of 1/2 height square = 2xArea of 1/2 height triangle

.5(4x4) - 2^2 = 2 x (.5 ( 2x2))

.5(16) - 4 = 2 x (.5(4))

8 - 4 = 2 x 2

4 = 4

I also realize that a symmetry check on the XY axis would also verify a right triangle, but this option allows me another verification path to allow the AI to report a right triangle with an additional amount of confidence.

I think this process could go on to infinity always generating a new set 2^n of triangles for every n operations.