2020-07-16 18:14:29 +0200 | received badge | ● Student (source) |

2013-06-14 11:43:19 +0200 | received badge | ● Famous Question (source) |

2012-08-24 23:56:34 +0200 | received badge | ● Notable Question (source) |

2012-03-01 21:09:32 +0200 | received badge | ● Popular Question (source) |

2011-04-19 11:15:02 +0200 | marked best answer | simply_full for expressions with exponents This is because of the way the Sage type system works. When you ask Sage to simplify an equation, it tries to do just that: it tries to find a simpler expression. It doesn't change an equation into a boolean truth value. In this case, the fact you're using the symbol "h" for both a (non-relational) expression and a relation is confusing things a bit, I think. You have the variable a, which is an Expression: h, which is also an Expression: but isn't an equation or inequality: and which simplifies as you note. Now we write the equation: This is also an Expression, but now it's a little different: If you want to find out if the equation is true, you convert the equation to a boolean value: In this case you don't even need to simplify it. Does that make sense? Expressions can get simplified, but in general they don't simplify to truth values. You have to ask for that explicitly if that's what you want.
Sage inherits the convention that while bool(eq)==True means that the expression is true (subject to whatever assumptions are in effect), |

2011-04-19 11:15:02 +0200 | received badge | ● Scholar (source) |

2011-04-19 11:14:58 +0200 | received badge | ● Supporter (source) |

2011-04-19 11:07:12 +0200 | commented answer | simply_full for expressions with exponents Here it is another example: ((2^(a - 2) * 3^(a + 3) / 6^a == 27 / 4) and a == a).simplify_full() this is simplified to a == a. Why here not 27/4 == 27 / 4 and a == a? The expression (a == a and (2^(a - 2) * 3^(a + 3) / 6^a == 27 / 4)).simplify_full() returns 27/4 == 27/4. Why terms in a conjunction are simplified away if they are true, except the last term? |

2011-04-19 11:00:28 +0200 | commented answer | simply_full for expressions with exponents Thank you for your answer. It was certainly useful. I have expected that my second expression, which is an equation (var('a'); h = (2^(a - 2) * 3^(a + 3) / 6^a == 27 / 4)) to be simplified directly to true. But I can use bool(h.simplify_full()) to check if the relation is true. However it still feels strange because if you just type the expression 27/4 == 27/4 then the system returns true and h.simplify_full() is just 27/4 == 27/4. The problem seems more acute when something is not necessarily true. If you test bool(a == b) for a, b variables you get false and not a == b as you would get when using simplification. On the other hand you would not be able to simplify an expression h as before to true, just using simplify_full. |

2011-04-19 09:06:09 +0200 | asked a question | simply_full for expressions with exponents Hello, I am new to sage and I am trying to simplify some expression. If I try: var('a'); h = 2^(a - 2) * 3^(a + 3) / 6^a; h.simplify_full(); I get 27 / 4 which is right. However if I try var('a'); h = (2^(a - 2) * 3^(a + 3) / 6^a == 27 / 4); h.simplify_full(); I get (27/4) == (27/4). I don't understand why I do not get the answer True in this case. |

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.