コード例 #1
0
def example_1():
    """
    AB perpendicular to BC, AB = x, and BC = 4. Is CA = sqrt(x^2+16) a correct answer?
    :return:
    """
    vh = VariableHandler()
    x = vh.number('x')
    A = vh.point('A')
    B = vh.point('B')
    C = vh.point('C')
    AB = vh.line(A, B)
    BC = vh.line(B, C)
    CA = vh.line(C, A)
    c = vh.apply('LengthOf', AB)
    a = vh.apply('LengthOf', BC)
    b = vh.apply('LengthOf', CA)
    p1 = a == 4
    p2 = c == x
    p3 = vh.apply('Perpendicular', AB, BC)
    q1 = b == (16 + x**2)**0.5
    q2 = b == x**2

    ns = NumericSolver([p1, p2, p3], vh)
    print(
        ns.find_assignment(q1)
    )  # find_assignment simply analyzes whether the query relation can be satisfied
    print(ns.query_invar(q1)
          )  # query_invar analyzes whether the query relation must hold true
    print(ns.find_assignment(q2)
          )  # this is satisfiable; there exists x that satisfies q2.
    print(ns.query_invar(q2)
          )  # this is False because q2 is not true for all possible x.
コード例 #2
0
ファイル: run_solver.py プロジェクト: allenai/EquationTree
def example_1():
    """
    AB perpendicular to BC, AB = x, and BC = 4. Is CA = sqrt(x^2+16) a correct answer?
    :return:
    """
    vh = VariableHandler()
    x = vh.number('x')
    A = vh.point('A')
    B = vh.point('B')
    C = vh.point('C')
    AB = vh.line(A, B)
    BC = vh.line(B, C)
    CA = vh.line(C, A)
    c = vh.apply('LengthOf', AB)
    a = vh.apply('LengthOf', BC)
    b = vh.apply('LengthOf', CA)
    p1 = a == 4
    p2 = c == x
    p3 = vh.apply('Perpendicular', AB, BC)
    q1 = b == (16 + x**2)**0.5
    q2 = b == x**2

    ns = NumericSolver([p1, p2, p3], vh)
    print(ns.find_assignment(q1))  # find_assignment simply analyzes whether the query relation can be satisfied
    print(ns.query_invar(q1))  # query_invar analyzes whether the query relation must hold true
    print(ns.find_assignment(q2))  # this is satisfiable; there exists x that satisfies q2.
    print(ns.query_invar(q2))  # this is False because q2 is not true for all possible x.
コード例 #3
0
def example_0():
    """
    AB = x, BC = 3, CA = 4. Is an answer x=5, x=8 possible?
    :return:
    """
    vh = VariableHandler()
    x = vh.number('x')
    A = vh.point('A')
    B = vh.point('B')
    C = vh.point('C')
    AB = vh.line(A, B)
    BC = vh.line(B, C)
    CA = vh.line(C, A)
    c = vh.apply('LengthOf', AB)
    a = vh.apply('LengthOf', BC)
    b = vh.apply('LengthOf', CA)
    p1 = a == 3
    p2 = b == 4
    p3 = c == x
    q1 = x == 8
    q2 = x == 5
    ns = NumericSolver([p1, p2, p3], vh)
    print(ns.find_assignment(q1))
    print(ns.find_assignment(q2))
コード例 #4
0
ファイル: run_solver.py プロジェクト: allenai/EquationTree
def example_0():
    """
    AB = x, BC = 3, CA = 4. Is an answer x=5, x=8 possible?
    :return:
    """
    vh = VariableHandler()
    x = vh.number('x')
    A = vh.point('A')
    B = vh.point('B')
    C = vh.point('C')
    AB = vh.line(A, B)
    BC = vh.line(B, C)
    CA = vh.line(C, A)
    c = vh.apply('LengthOf', AB)
    a = vh.apply('LengthOf', BC)
    b = vh.apply('LengthOf', CA)
    p1 = a == 3
    p2 = b == 4
    p3 = c == x
    q1 = x == 8
    q2 = x == 5
    ns = NumericSolver([p1, p2, p3], vh)
    print(ns.find_assignment(q1))
    print(ns.find_assignment(q2))