:

## The continuous property

Maple

As the discussion in this thread  did not provide me a clear understanding of the implementation and intended usage of the property 'continuous' I have looked at this subject a bit further. And as it is an underdocumented subject, it seems fit to post here some issues that I have found.

The help page ?property states in a table of the properties for functionals:

Name              Parent        Description
continuous     mapping    a function that is continuous for every real value, in every parameter

Similarly:

````property/Description`[continuous];

a function which is continuous for every real value, in every parameter
```

Fine, but what is a "function" here? At start, Maple attaches properties to some object names (here in Maple 12):

```nops([indices(op(`property/object`))]);
indices(op(`property/object`));
91
[limit/Y], [limit], [binomial], [cos], [limit/Z], [hankel], [coth], [mellin],
[erf], [fouriersin], [FresnelS], [trunc], [Catalan], [Diff], [invztrans],
[BesselK], [round], [ithprime], [arcsech], [sec], [BesselJ], [prevprime],
[BesselY], [signum], [bernoulli], [invfourier], [erfi], [invlaplace],
[tanh], [hilbert], [modp], [Int], [product], [sin], [arcsinh], [dawson],
[gamma], [arcsin], [abs], [Ci], [GAMMA], [arccos], [LambertW], [Zeta],
[sinh], [arccot], [fourier], [cosh], [min], [arctanh], [Psi], [euler],
[Beta], [arccsch], [D], [Ei], [mods], [Sum], [BesselI], [Pi], [ztrans], [@],
[tan], [fouriercos], [dilog], [arctan], [csc], [cot], [sqrt], [arccosh],
[@@], [laplace], [diff], [invhilbert], [Limit], [nextprime], [sum], [sech],
[exp], [arccsc], [ln], [csch], [arcsec], [max], [erfc], [int], [sign],
[limit/X], [FresnelC], [arccoth], [Si]

```

I.e. names of mathematical functions, constants, operators, inert commands, etc. Of these, only 'abs' has the property 'continuous' explicitly attached:

````property/object`[abs];
AndProp(EvenMap, continuous, Non(constant))
```

For the other objects in this table, the property 'continuous' is derived from the property lattice by its order relation, "<P" say, between "child" and "parent" properties. E.g.:

````property/object`[sin];
AndProp(OddMap, InfinitelyDifferentiable, Non(constant))
```

and

```InfinitelyDifferentiable <P differentiable <P continuous
```

Then:

```is(sin,continuous);

true
```

So, this property works in a "functional sense" as, on one hand it is attached to the function name, but does not work for function calls or procedures:

```is(sin(x),continuous);
false
is(x->sin(x),continuous);
false

```

And, on the other hand, it works for some functional expressions:

```is(2*sin,continuous);
true

is(D(sin),continuous);
true

```

However, this implementation is strange, to say the least, as, apparently, there is no provision for a functional constant. Indeed:

```is(1,continuous);
false
```

So, to see what is intended in this implementation to be "continuous", I have tracked its child properties in the lattice:

````property/ChildTable`[continuous];
`property/ChildTable`[op(%)];
`property/ChildTable`[op(%)];
`property/ChildTable`[op(%)];
`property/ChildTable`[op(%)];
{differentiable}
{InfinitelyDifferentiable}
{PolynomialMap}
{LinearMap}
{BottomProp}

```

So, any object with these properties is deduced to have the property 'continuous'. E.g. there are 18 objects in the table '`property/object`' with the property 'LinearMap', so:

```[hankel ,mellin ,fouriersin ,Diff , invztrans , invfourier ,invlaplace ,
hilbert , Int, fourier , Sum, ztrans, fouriercos, laplace, diff, invhilbert ,
sum, int]:

map(is,%,continuous);

[true, true, true, true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true]

```

I do not understand in what sense 'Diff' or 'Int' is meant to be "continuous". ﻿