On 20 September 2014 09:19, Waldek Hebisch <[email protected]> wrote:
>>
>> > But then you get something quite different than 'Expression'.
>>
> Bill Page wrote:
>>
>> That is not clear to me. I think it is (almost) the same.
>
> Some people say that mutivariate calculus is almost the
> same as univariate. But there are significant differences.
> Having two Wirtinger derivatives we have bivariate calculus
> instead of univariate one.
>
OK, but we also have:
D(f(z), conjugate(z)) = conjugate D(conjugate(f(z)),z)
>>
>> If we have a good conjugate function then we may define other
>> nonholomorphic functions like
>>
>> real(x) = x/2 + conjugate(x)/2
>>
>> so assumptions are not needed.
>
> I do not understand why you say "so assumptions are not needed".
> IMO one of main simplifications for 'real' is replacing
> 'real(x)' by 'x' when 'x' is real. Clearly assumptions
> make such simplification more powerful.
>
Assumptions are logical statements involving quantification, e.g. ∀ x
∈ Real. Extending FriCAS in this direction seems likely to me to meet
the same limitations and level of difficulty associated with theorem
proving systems. Of course doing so would make it more powerful. But
I think it is more in keeping with the algebraic approach to just
define real as
x = conjugate(x)
>> >> that it assumes that f(x) cannot be independent of x
>> >
>> > Which is fundamental assumption in 'Expression'.
>> >
>>
>> I am not convinced that it is fundamental
>
> Theoretical foundation of advanced expression manipulations
> is theory of differential fields (and rings). There are
> multivariate extensions, but several results is univariate-only.
>
I am not convinced that it is really necessary to treat Wirtinger
derivatives as multivariate.
>
>>
>> > Richardson theorem tells you that
>> > once you drop this assumption you no longer can have computable
>> > zero test (even "modulo constants").
>>
>> My (probably limited) understanding is that Richardson's theorem
>> forbids abs. Note: abs is already in Expression. I only want to add
>> conjugate.
>
> Well, if you want "proper" handling already 'abs' is problematic.
> 'conjugate' just adds a new method of defining 'abs'. So why
> I do not oppose to 'abs'? For 'abs' applied to real arguments
> there is a way to sidestep the problem. Namely, 'abs(x)' is
> either 'x' or '-x' (with overlap when 'x' is 0). So given
> expression containing 'abs' is equivalent to a alternative
> of finitely many cases, each case containing no 'abs'.
How do we know if an argument is real? As you imply, we could
eliminate abs and just define conjugate.
sqrt(x*conjugate(x))
> By
> Richardson in general we can not decide which case is the
> right one. But for many problems doing computations
> simultaneously on all cases gives us conservative approximation.
Perhaps both cases are right?
> Also, when 'x' is not 0, then 'abs(x)/x' is a "piecewise constant"
> (its derivative is 0). This means that problems with with 'abs'
> can be reduced to "constants".
We do have
D(sqrt(x*conjugate(x))/x, x) + D(sqrt(x*conjugate(x))/x, conjugate x)
eval(%,conjugate(x)=x)
0
> We still have problem with
> "constants" (that is expressions with derivative 0) containing
> 'abs'. But they are lessened by fact that we do almost no
> simplifications of 'abs' – in many calculations 'abs' behaves
> like undefined function. There are gaps in this argument, and
> our implementation has no explicit treatment of cases (which
> may lead to problems with zero divisors). However, there is
> reasonably clear way to eliminate exisiting unsoudness.
>
> This argument break down when we have 'abs' of complex argument.
> So currently using 'abs' of complex argument is potentially
> unsound (in principle can lead to wrong results). Once
> we use first Wirtinger derivative as derivative of 'conjugate',
> to be consistent we need to use first Wirtinger derivative as
> a derivative of 'abs'. But this is inconsistent with treatment
> of 'abs' as a real function.
>
I would like to replace abs with equivalent expression involving conjugate.
> Note1: Richardson theorem says that we can not have complete
> handling of 'abs' or 'conjugate'.
I don't think Richardson theorem says anything about 'conjugate'.
> What I wrote above about
> 'abs' outlines one approach which is incomplete but computable.
> Similarly, for 'conjugate' we need to find incomplete, but
> computable approximation.
>
Can you show that handling of 'conjugate' is undecidable?
>>
>> Why do you say that it forbids conjugate. Can you give a reference?
>
> Because we assume univariate setting (more precisely single
> derivative per variable). To be more precise: there are
> no obvious problems with leaving derivative of 'conjugate'
> undefined. But any definition of derivative leads to
> two independent derivatives per variable.
>
The two derivatives are related by 'conjugate'.
>> >
>> > Do you still think that all users always want
>> > 'conjugate(log(x)) = log(conjugate(x))'? I would say
>> > to perform this transformation we need apropriate
>> > assumptions.
>>
>> log of negative number is multi-valued. The result above is not any
>> worse than returning -2 for sqrt(4) or similar in the case of inverse
>> trig functions.
>
> Sure. But you can find a lot of folks who call such behaviour
> a bug. Certainly it would be nice to be able to disable
> such transformations. But then you will have problems with
> chain rule.
>
I agree that the chain rule still needs to changed to become aware of
'conjugate'.
Bill Page.
--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.