示例1:
我们使用以下代码
应用RH定理K = Real('K')
print simplify(And(12 - 3*K >0 , 20 + 0.25*K >0))
,输出为:
¬(K ≥ 4) ∧ ¬(K ≤ -80)
示例2:
我们使用以下代码
应用RH定理K, a1, a2, a3 = Reals('K a1 a2 a3')
a1 = 20 + 1.5*K
a2 = 4
a3 = 4*K -100
print simplify(And(a1 > 0 , a3 > 0, a1*a2 > a3))
,输出
¬(K ≤ -40/3) ∧ ¬(K ≤ 25) ∧ ¬(K ≤ -90)
示例3:
我们使用以下代码
应用RH定理K = Real('K')
a1 = 10
a2 = 30 - 2.4*K
a3 = 2
a4 = 100 + 5*K
print simplify(And(a4 > 0, a1*a2*a3 > a3**2 + a4*a1**2))
,输出
¬(K ≤ -20) ∧ ¬(K ≥ -2351/137)
示例4:
我们使用以下代码
应用RH定理u, s, d, g, N, b , a = Reals('u s d g N b a')
c1 = 2*u + s + d + g
prove(Implies(And(u > 0, s > 0, d >0, g >0), c1 > 0))
c2 = u*g + u**2 + s*u + 2*d*u + s*d + s*g + d*g
c3 = d*u**2 - N*a*b*s + d*u*g + s*d*u + s*d*g
prove(Implies(And(u > 0, s > 0, d >0, g >0, a >0, b > 0, N >0), c1*c2 > c3))
,输出为:
proved
proved
剩余RH条件:c3> 0导致
示例5:
我们使用以下代码
应用RH定理u, s1, s2, d, g, N, b , a = Reals('u s1 s2 d g N b a')
c1 = d + 3*u + s1 + g + s2
prove(Implies(And(u > 0, s1 > 0, s2 > 0, d >0, g >0), c1 > 0))
c2 = s2*g + 3*d*u + d*g + d*s1+ s1*s2 + 3*u**2 + 2*s2*u + 2*s1*u+ s1*g + 2*u*g + d*s2
c3 = 2*d*u*g + s1*u*g + 2*d*s2*u + 3*d*u**2 + d*g*s1 + s1*s2*g + u**3 + u*s2*g + 2*d*s1*u + s1*s2*u + g*u**2 + d*g*s2 + s1*u**2 + d*s1*s2 + s2*u**2
prove(Implies(And(u > 0, s1 > 0, s2 >0, d >0, g >0, a >0, b > 0, N >0), c3 > 0))
c4 = d*g*u**2 + d*s2*u**2 + s1*d*u*g + s1*d*s2*u + s1*d*s2*g - N*a*b*s1*s2 + d*u**3 + s1*d*u**2 + d*u*s2*g
prove(Implies(And(u > 0, s1 > 0, s2 >0, d >0, g >0, a >0, b > 0, N >0), c1*c2*c3 > c3**2 + c4*c1**2))
,输出为:
proved
proved
proved
它也可以在线试用here。
剩余RH条件:c4> 0导致
问题:
如果您知道更有效的代码解决此类问题,请与我们联系
如何简化示例1,2和3的输出。
对于示例4,如何解决c3> 0使用Z3Py然后得到Ro
对于示例5,如何解决c4> 0使用Z3Py然后得到Ro
非常感谢。