// A // /) // / ) // / ) // center: O ) // \ ) // \ ) // \) // C // // D // /) // / ) // / ) // center: Q ) // \ ) // \ ) // \) // F // // Congruent(Arc(A, C), Arc(D, F)) -> Congruent(Segment(AC), Segment(DF)) // private static List <EdgeAggregator> InstantiateConversePartOfTheorem(CongruentArcs cas) { List <EdgeAggregator> newGrounded = new List <EdgeAggregator>(); // // Acquire the chords for this specific pair of arcs (endpoints of arc and segment are the same). // Segment chord1 = Segment.GetFigureSegment(cas.ca1.endpoint1, cas.ca1.endpoint2); Segment chord2 = Segment.GetFigureSegment(cas.ca2.endpoint1, cas.ca2.endpoint2); if (chord1 == null || chord2 == null) { return(newGrounded); } // Construct the congruence GeometricCongruentSegments gcss = new GeometricCongruentSegments(chord1, chord2); // For hypergraph List <GroundedClause> antecedent = new List <GroundedClause>(); antecedent.Add(chord1); antecedent.Add(chord2); antecedent.Add(cas); newGrounded.Add(new EdgeAggregator(antecedent, gcss, forwardAnnotation)); return(newGrounded); }
// A // /) // / ) // / ) // center: O ) // \ ) // \ ) // \) // C // // D // /) // / ) // / ) // center: Q ) // \ ) // \ ) // \) // F // // Congruent(Arc(A, C), Arc(D, F)) -> Congruent(Angle(AOC), Angle(DQF)) // private static List <EdgeAggregator> InstantiateConversePartOfTheorem(CongruentArcs cas) { List <EdgeAggregator> newGrounded = new List <EdgeAggregator>(); // // Get the radii (and determine if the exist in the figure) // Segment radius11; Segment radius12; cas.ca1.GetRadii(out radius11, out radius12); if (radius11 == null || radius12 == null) { return(newGrounded); } Segment radius21; Segment radius22; cas.ca2.GetRadii(out radius21, out radius22); if (radius21 == null || radius22 == null) { return(newGrounded); } // // Acquire the central angles from the respoitory // Angle central1 = Angle.AcquireFigureAngle(new Angle(radius11, radius12)); Angle central2 = Angle.AcquireFigureAngle(new Angle(radius21, radius22)); if (central1 == null || central2 == null) { return(newGrounded); } GeometricCongruentAngles gcas = new GeometricCongruentAngles(central1, central2); // For hypergraph List <GroundedClause> antecedent = new List <GroundedClause>(); antecedent.Add(central1); antecedent.Add(central2); antecedent.Add(cas); newGrounded.Add(new EdgeAggregator(antecedent, gcas, converseAnnotation)); return(newGrounded); }