Exploring the Trapezoid

Textbook formulation:

Let ABCD be a trapezoid (AB ∥ CD); M, N the midpoints of AD resp. BC; P the intersection of the two diagonals; X the intersection of line MN with the diagonal BD; Q, S the intersections of the line passing through P and parallel to AB with lines BC resp. AD. Explore the geometric configuration that results from the previous constructions.

Input to the system:

Assumptions["Trapezoid1", 
      any[A, B, C, 
        D], 
triangle[A, B, 
          C] ∧ 
pon[ D, 
          pline[ C, A, B]] ∧ 
line[B, 
          C] ∧ 
line[A, D]]

Input to the system:

KnowledgeBase["Trapezoid_g", 
      any[A, B, C, 
        D], {{A, {0, 0}}, {B, {250, 0}}, {C, {150, 120}}, {D, {70, 
            120}}}]

Input to the system:

Simplify[Assumptions["Trapezoid1"], by -> GraphicSimplifier, 
      using -> KnowledgeBase["Trapezoid_g"]]

Output generated automatically by the system

End of output

Input to the system:

kb1 = 
        Explore[Assumptions["Trapezoid1"], by -> AreaExplore, 
          ExplorerOptions -> {GraphicPoints -> 
                KnowledgeBase["Trapezoid_g"]}];

Inserted notebook generated automatically by the system

PrintGraph[\[SelectionPlaceholder]]

End of inserted notebook

Input to the system:

Assumptions["Trapezoid2", 
      any[A, B, C, D, M, 
        N], 
midpoint[M, A, 
          D] ∧ 
midpoint[N, B, 
          C] ∧ 
line[M, N]]

Input to the system:

kb2 = 
        Explore[Assumptions["Trapezoid2"], by -> AreaExplore, 
          using -> kb1, producing  -> Tr2];

Inserted notebook generated automatically by the system

PrintGraph[\[SelectionPlaceholder]]

End of inserted notebook

Input to the system:

Assumptions["Trapezoid3", 
      any[A, B, C, D, M, N, X, P, Q, 
        S], 
inter[X, line[ M, N], 
          line[ B, D]] ∧ 
inter[P, 
          line[ A, C], 
          line[ B, D]] ∧ 
inter[Q, 
          line[ B, C], 
          pline[P, A, B]] ∧ 
inter[S, 
          line[ P, Q], 
          line[ A, D]] ∧ 
line[M, 
          C] ∧ 
line[A, Q]]

Input to the system:

kb3 = 
        Explore[Assumptions["Trapezoid3"], by -> AreaExplore, 
          using -> kb2, producing -> Tr3, 
          ExplorerOptions -> {GraphicPoints -> 
                KnowledgeBase["Trapezoid_g"]}];

Inserted notebook generated automatically by the system

PrintGraph[\[SelectionPlaceholder]]