Sets

Handlers for predicates related to set membership: integer, rational, etc.

class sympy.assumptions.handlers.sets.AskAlgebraicHandler

Handler for Q.algebraic key.

class sympy.assumptions.handlers.sets.AskAntiHermitianHandler

Handler for Q.antihermitian Test that an expression belongs to the field of anti-Hermitian operators, that is, operators in the form x*I, where x is Hermitian

static Add(expr, assumptions)

Antihermitian + Antihermitian -> Antihermitian Antihermitian + !Antihermitian -> !Antihermitian

static Mul(expr, assumptions)

As long as there is at most only one noncommutative term: Hermitian*Hermitian -> !Antihermitian Hermitian*Antihermitian -> Antihermitian Antihermitian*Antihermitian -> !Antihermitian

static Pow(expr, assumptions)

Hermitian**Integer -> !Antihermitian Antihermitian**Even -> !Antihermitian Antihermitian**Odd -> Antihermitian

class sympy.assumptions.handlers.sets.AskComplexHandler

Handler for Q.complex Test that an expression belongs to the field of complex numbers

class sympy.assumptions.handlers.sets.AskExtendedRealHandler

Handler for Q.extended_real Test that an expression belongs to the field of extended real numbers, that is real numbers union {Infinity, -Infinity}

class sympy.assumptions.handlers.sets.AskHermitianHandler

Handler for Q.hermitian Test that an expression belongs to the field of Hermitian operators

static Add(expr, assumptions)

Hermitian + Hermitian -> Hermitian Hermitian + !Hermitian -> !Hermitian

static Mul(expr, assumptions)

As long as there is at most only one noncommutative term: Hermitian*Hermitian -> Hermitian Hermitian*Antihermitian -> !Hermitian Antihermitian*Antihermitian -> Hermitian

static Pow(expr, assumptions)

Hermitian**Integer -> Hermitian

class sympy.assumptions.handlers.sets.AskImaginaryHandler

Handler for Q.imaginary Test that an expression belongs to the field of imaginary numbers, that is, numbers in the form x*I, where x is real

static Add(expr, assumptions)

Imaginary + Imaginary -> Imaginary Imaginary + Complex -> ? Imaginary + Real -> !Imaginary

static Mul(expr, assumptions)

Real*Imaginary -> Imaginary Imaginary*Imaginary -> Real

static Pow(expr, assumptions)

Imaginary**integer -> Imaginary if integer % 2 == 1 Imaginary**integer -> real if integer % 2 == 0 Imaginary**Imaginary -> ? Imaginary**Real -> ?

class sympy.assumptions.handlers.sets.AskIntegerHandler

Handler for Q.integer Test that an expression belongs to the field of integer numbers

static Add(expr, assumptions)

Integer + Integer -> Integer Integer + !Integer -> !Integer !Integer + !Integer -> ?

static Mul(expr, assumptions)

Integer*Integer -> Integer Integer*Irrational -> !Integer Odd/Even -> !Integer Integer*Rational -> ?

static Pow(expr, assumptions)

Integer + Integer -> Integer Integer + !Integer -> !Integer !Integer + !Integer -> ?

class sympy.assumptions.handlers.sets.AskRationalHandler

Handler for Q.rational Test that an expression belongs to the field of rational numbers

static Add(expr, assumptions)

Rational + Rational -> Rational Rational + !Rational -> !Rational !Rational + !Rational -> ?

static Mul(expr, assumptions)

Rational + Rational -> Rational Rational + !Rational -> !Rational !Rational + !Rational -> ?

static Pow(expr, assumptions)

Rational ** Integer -> Rational Irrational ** Rational -> Irrational Rational ** Irrational -> ?

class sympy.assumptions.handlers.sets.AskRealHandler

Handler for Q.real Test that an expression belongs to the field of real numbers

static Add(expr, assumptions)

Real + Real -> Real Real + (Complex & !Real) -> !Real

static Mul(expr, assumptions)

Real*Real -> Real Real*Imaginary -> !Real Imaginary*Imaginary -> Real

static Pow(expr, assumptions)

Real**Integer -> Real Positive**Real -> Real Real**(Integer/Even) -> Real if base is nonnegative Real**(Integer/Odd) -> Real Real**Imaginary -> ? Imaginary**Real -> ? Real**Real -> ?