Repository: sympy/sympy

Issue:
sqrt.is_negative
`sqrt(x).is_negative` currently gives None. But if sqrt represents the principal square root, shouldn't it be False? 

This came up from [this StackOverflow question](https://stackoverflow.com/questions/50476889/how-to-eliminate-negative-solutions-from-sympy-solve-result)

Discussion:

Patch:
diff --git a/sympy/core/power.py b/sympy/core/power.py
index 53f459575a..dcdbf63b8a 100644
--- a/sympy/core/power.py
+++ b/sympy/core/power.py
@@ -530,6 +530,9 @@ def _eval_is_extended_positive(self):
                 return log(self.base).is_imaginary
 
     def _eval_is_extended_negative(self):
+        if self.exp is S(1)/2:
+            if self.base.is_complex or self.base.is_extended_real:
+                return False
         if self.base.is_extended_negative:
             if self.exp.is_odd and self.base.is_finite:
                 return True


Test patch:
diff --git a/sympy/core/tests/test_power.py b/sympy/core/tests/test_power.py
index 50c13c7511..6996f62033 100644
--- a/sympy/core/tests/test_power.py
+++ b/sympy/core/tests/test_power.py
@@ -510,6 +510,19 @@ def test_issue_18190():
     assert sqrt(1 / tan(1 + I)) == 1 / sqrt(tan(1 + I))
 
 
+def test_issue_14815():
+    x = Symbol('x', real=True)
+    assert sqrt(x).is_extended_negative is False
+    x = Symbol('x', real=False)
+    assert sqrt(x).is_extended_negative is None
+    x = Symbol('x', complex=True)
+    assert sqrt(x).is_extended_negative is False
+    x = Symbol('x', extended_real=True)
+    assert sqrt(x).is_extended_negative is False
+    assert sqrt(zoo, evaluate=False).is_extended_negative is None
+    assert sqrt(nan, evaluate=False).is_extended_negative is None
+
+
 def test_issue_18509():
     assert unchanged(Mul, oo, 1/pi**oo)
     assert (1/pi**oo).is_extended_positive == False