Recenty in sci.math.symbolic there was a question if
b^2 >= (a - c)^2 AND a^2 >= b^2 implies
c^2 >= (a + b)^2 OR c^2 >= (a - b)^2

That can be solved using CAD, a shown in attachement.

-- 
                              Waldek Hebisch

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/ZPI1xegGEArMaNaM%40mail.math.uni.wroc.pl.
-- We want to show that:
--    b^2 >= (a - c)^2 AND a^2 >= b^2
-- implies:
--    c^2 >= (a + b)^2 OR c^2 >= (a - b)^2
--   where ">=" denotes "greater or equal"?

rC := RealClosure(Fraction(Integer))
pR := POLY(rC)

-- Replace inequalies by differences of sides
lp := [b^2 - (a - c)^2, a^2 - b^2, c^2 - (a + b)^2, c^2 - (a - b)^2]

-- Do CAD
cd := cylindricalDecomposition(lp::List(pR)
                              )$CylindricalAlgebraicDecompositionPackage(rC)

-- If implication is false, then there is opposite strict ineqality
-- in the last two inequalities.  Hence, there is counterexample where
-- all inequalities are strict.  Consequently, it is enough to look
-- only at cells of full dimension.
cd3 := [ce for ce in cd | dimension(ce) = 3];

sp3 := [samplePoint(ce) for ce in cd3]::List(List(Fraction(Integer)))
vll := [map(p +-> eval(p, [a, b, c], pp), lp) for pp in sp3];
vlq := vll::List(List(Fraction(Integer)))

good := true
-- Loop to check validity of formula at each sample point
for vl in vlq repeat
    if vl(1) > 0 and vl(2) > 0 and vl(3) < 0 and vl(4) < 0 then
        good := false

print good

Reply via email to