private static List<EdgeAggregator> InstantiateToTheorem(Trapezoid trapezoid, GroundedClause original) { List<EdgeAggregator> newGrounded = new List<EdgeAggregator>(); // If median has not been checked, check now if (!trapezoid.IsMedianChecked()) trapezoid.FindMedian(); // Generate only if the median is valid (exists in the original figure) if (!trapezoid.IsMedianValid()) return newGrounded; GeometricParallel newParallel1 = new GeometricParallel(trapezoid.median, trapezoid.oppBaseSegment); GeometricParallel newParallel2 = new GeometricParallel(trapezoid.median, trapezoid.baseSegment); // For hypergraph List<GroundedClause> antecedent = new List<GroundedClause>(); antecedent.Add(original); newGrounded.Add(new EdgeAggregator(antecedent, newParallel1, annotation)); newGrounded.Add(new EdgeAggregator(antecedent, newParallel2, annotation)); return newGrounded; }
private static List<EdgeAggregator> InstantiateToTheorem(Trapezoid trapezoid, GroundedClause original) { List<EdgeAggregator> newGrounded = new List<EdgeAggregator>(); // If median has not been checked, check now if (!trapezoid.IsMedianChecked()) trapezoid.FindMedian(); // Generate only if the median is valid (exists in the original figure) if (!trapezoid.IsMedianValid()) return newGrounded; Addition sum = new Addition(trapezoid.baseSegment, trapezoid.oppBaseSegment); Multiplication product = new Multiplication(new NumericValue(2), trapezoid.median); GeometricSegmentEquation gseq = new GeometricSegmentEquation(product, sum); // For hypergraph List<GroundedClause> antecedent = new List<GroundedClause>(); antecedent.Add(original); newGrounded.Add(new EdgeAggregator(antecedent, gseq, annotation)); return newGrounded; }