>>>> (f∘g)(x) ≡ f(g(x))
>
> And yet, f and g are not defined here, and neither are x.
Because of course they need not to. Whatever the domains and codomains
of f and g, they do not change the meaning of composition as defined by
the above identity.
But leave that identity, and consider how the DoJ defines monadic @ :
u@v y ↔ u v y
Where are the 'definitions' of u, v, and y?
> (And, for
> that matter, the grammar associated with parenthesis are not defined
> here.)
This is a ridiculous nitpicking which does not need to be commented
further.
> Thus, formal definitions depend on the definitions of the symbols used
> in the definition.
False, as exemplified by the definition of @ quoted above.
> More generally, Mathematics deals with numerous
> definitions for the symbols it uses. There are numerous branches of
> mathematics, each with their own conventions for these definitions.
Irrelevant to the discussion of composition and functors.
>>> One issue, here, is that the definitions of f, g and x are contextual.
>> What do you mean by 'contextual'?
> I mean that, for example, the definition of x depends on the context
> where the phrase that contains x is used.
Again, how does the definition of @ depend on a 'context'?
(Not that that is the only counter-example available, far from that …)
> In one context, x might be 1
> In another context, x might be 2
> ...
> ...
And again, the context of (f∘g)(x) ≡ f(g(x)) is no different than
that of u@v y ↔ u v y . How is the definition of @ 'contextual'?
Are you saying that, in the second identity, the meaning of @ depends
on what y 'might be'?
> And yet none of these statements were part of that "formal definition".
Why should they be, if they are assumed anyway. Do you consider
u@v y ↔ u v y 'informal' or broken in some way due to not including the
same trivially assumed statements?
>> How can a function have two different domains without being in fact
>> two different functions? Doesn't make sense to me.
>
> A domain is the set of argument values for which a function is defined.
So far, correct.
> A function can have multiple definitions.
If so, all they are different functions, not one function.
> How else can we talk about extending a function defined on
> integers to be a function defined on real numbers?
By defining a new, different function acting on all reals.
We don't keep and use both at the same time, and no
confusion arises.
> No ranks are changed.
> The rank of the derived verb will sometimes be different, for
> different sentences. But whether this is a significant issue
> depends on the domain under consideration.
It is significant enough to make @ and @: different adverbs, which
produce (in general) different verbs from the same arguments.
Hence, as I said, if @ is composition in the mathematical sense,
@: isn't.
> Your formal definition did not require that a verb be produced.
> So why is this an issue now?
It did require this in exactly the same sense that u@v y ↔ u v y
does.
>> If x is an adverb, so that g(x) is a verb, then f(g(x)) is a hook
>> – again, not a composition.
> I do not know what you are talking about here.
What is not clear? The example was yours. You took the phrase
f(g(x)) with x an adverb and said that the phrase might represent
composition. What I am pointing to is that this cannot be true,
even if f and g are verbs: the result is a hook, and a hook is
never a composition (in the same sense that @ or its applications
are compositions).
> If f&g is composition then clearly f(g(x)) is composition.
False. Not only the two objects are different, they are of different
types. E.g., if f and g are numeric functions, then f&g is also a
numeric function (a verb), while f(g(x)) is a number.
(Note that all the other examples that you gave in this group,
even though most of them were not compositions, but at least they
designated some verbs.)
>> We have to stick to the mathematical meaning of composition because
>> this is what the definition of functor depends on, and we were
>> discussing functors ...
> Except we seem to have new constraints appearing as new examples
> are introduced?
Examples of what? If of functors, then according to what definition?
Since you were referring to the notion of functor in Haskell, I am
assuming a functor is something that has a fmap function satisfying
the homomorphic identity I quoted – and that relies on the
mathematical, Haskell, ML, etc. understanding of composiion,
represented in J as @ and &.
>>> You seem to be saying that context is irrelevant.
>> The context of what? In defining composition, I see no context at all.
> The context under consideration. This is the context that supplies
> definitions for the functions and which defines their domains.
This has been talked over enough already. See above.
> Let's consider:
> f @: g
> ...
> So I am not sure what you are trying to say.
If f and g – and not their modified copies – were subjected to
composition, then the result would be a verb with some rank that
apparently depends on the ranks of f and g. That rank would not
invariably be infinite, as is the case with @:. Therefore, what
@: does is not just a composition (although it resembles one).
Moreover, if @: just composed its argument verbs f and g, all of
the following conditions would be kept:
composition is a true one (equivalent to ∘ in mathematics);
f takes part in the composition unmodified;
similar of g;
the verb resulting from composing f on g is left unmodified.
From @: producing verbs of always infinite ranks, it follows that
at least one of the above conditions is violated. I really am not
sure how precisely @: achieves its result – which of the said
conditions it violates – but this is secondary, an implementational
detail of @:. The important consequence of the above is that @: is
not (strictly speaking, which we strive for here) composition. All
the more so in view of the DoJ saying @ – a different adverb – is the
composition.
> f@g is not always syntactically valid.
Sure, and there are even more ways for f@g to become invalid …
When I wrote 'any pair of arguments' I obviously meant any pair of
verbs for which f@g makes sense.
But of course, here you are nitpicking again, because your note is
actually tangent to the content of the statement that I made and
you chose to comment.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm