0% found this document useful (0 votes)
1K views614 pages

Practical Programming in Mathematica Obooko

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1K views614 pages

Practical Programming in Mathematica Obooko

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 614

International Academy of Noosphere

Victor Aladjev, Michael Shishakov,


Vjacheslav Vaganov

Practical programming in Mathematica

Tallinn Research Group

Fifth edition

This is an authorized free edition from Obooko www.obooko.com


Practical programming in Mathematica. Victor Aladjev, Michael Shishakov, Vjacheslav
Vaganov. Fifth edition.– USA: Lulu Press, 613 p., 2017, ISBN 978–1–387–35606–5

Systems of computer mathematics find more and more broad use in a number of natural,
economical and social fields. One of leaders among means of this class undoubtedly is the
Mathematica system. The book focuses on an important aspect – procedural and functional
programming supported by the Mathematica. This aspect is of particular importance not
only for appendices but also above all it is quite important in the creation of the user means
which extend the most frequently used standard means of the Mathematica system and/or
eliminate its shortcomings, or complement with the new interesting facilities.
The present book contains over 1140 software etudes not only which are illustrating effective
methods of programming in Mathematica system and many subtleties and undocumented
opportunities of its software, but also being of undoubted interest as the means expanding
and supplementing the system means. In a certain historical context etudes have appeared
as a result of development of the number of rather large projects in the Mathematica system
connected with the solution of mathematical problems, computer researches of the classical
cellular automata, modeling, etc. In the course of programming of these projects the certain
software fragments presenting mass character have been formed later on in the kind of the
separate procedures and functions that have made the basis of the package attached to the
present book. Many etudes presented here contain a rather useful and effective methods of
programming in Mathematica system. The presented etudes are small by the size of program
code and can be in case of need rather easily analysed and, perhaps, are modified for specific
conditions of application. It must be kept in mind that along with the software having both
the applied, and the system character together with illustrating of rather useful methods of
programming; at that, the present book represents a rather convenient organization of the
user software that supported by a large number of the means for its serving.
Software represented in the book contains a number of useful and effective receptions of the
procedural and functional programming in the Mathematica system that extend the system
software and allow sometimes much more efficiently and easily to program the software for
various purposes, above all, wearing system character. Among them there are means which
are of interest from the point of view of including of their or their analogs in standard tools
of the Mathematica system, at the same time they use approaches, useful in programming
of applications. The above software rather essentially dilates the Mathematica functionality
and can be useful enough for programming of many problems above all of system character.
At the same time, it must be kept in mind that the classification of the represented means by
their appointment in a certain measure has a rather conditional character because these tools
can be crossed substantially among themselves by the functionality. The freeware package
MathToolBox containing the above means is attached to the present book.
The book is oriented on a wide enough circle of the users of computer mathematics systems,
researchers, teachers and students of universities for courses of computer science, physics,
mathematics, and a lot of other natural disciplines. This book will be of interest also to the
specialists of industry and technology which use the computer mathematics systems in own
professional activity. At last, the book is a rather useful handbook with fruitful methods on
the procedural and functional programming in the Mathematica system.
Practical programming in Mathematica
Contents
Preface 5
Chapter 1. Additional tools in interactive mode of the Mathematica 10
Chapter 2. Additional tools of processing of expressions in the Mathematica software 25
Chapter 3. Additional tools of processing of symbols and strings in the Mathematica 63
3.1. Operations on strings 63
3.2. Expressions containing in strings 76
3.3. Replacements and extractions in strings 79
3.4. Operating of substrings in strings 81
3.5. Tools of string processing that are rather useful for certain applications 98
Chapter 4. Additional tools of processing of sequences and lists in the Mathematica 104
4.1. Additional tools for computer research of cellular automata 176
Chapter 5. The additional tools expanding the standard Mathematica functions, or its
software as a whole 200
5.1. The control branching structures and loop structures in the Mathematica 221
5.2. The loop control structures of the Mathematica system 223
Chapter 6. Problems of procedural programming in the Mathematica 226
6.1. Definition of procedures in the Mathematica software 226
6.2. Definition of the user functions and pure functions in software of the Mathematica 245
6.3. Tools for testing of procedures and functions in the Mathematica system 254
6.4. Headings of the user procedures and functions in the Mathematica system 276
6.5. Formal arguments of procedures and functions; the tools of their processing in the
Mathematica software 298
6.6. Local variables of modules and blocks; the means of manipulation by them in the
Mathematica software 325
6.7. Global variables of modules and blocks; the tools of manipulation by them in the
Mathematica software 350
6.8. Attributes, options and values by default for the arguments of the user blocks, functions
and modules; additional tools of their processing in the Mathematica system 365
6.9. Some additional facilities for operating with blocks, functions and modules in the
Mathematica software 377
Chapter 7. Software for input–output in the Mathematica system 430
7.1. Tools of the Mathematica system for working with internal files 430
7.2. Tools of the Mathematica system for working with external files 440
7.3. Tools of the Mathematica system for processing of attributes of directories and files 451
7.4. Additional tools for processing of datafiles and directories 457
7.5. Certain special tools for processing of datafiles and directories 474
Chapter 8. The manipulations organization with the user packages in the Mathematica 483
8.1. Concept of the context, and its use in the software of the Mathematica 484
8.1.1. Interconnection of contexts and packages in the software of the Mathematica 495
8.2. Definition of the user packages, and their usage in the Mathematica 498
8.3. Additional tools for manipulating with the user packages in the Mathematica 522

3
Victor Aladjev, Michael Shishakov, Vjacheslav Vaganov
8.4. The organization of the user software in the Mathematica system 595
8.5. A MathToolBox package for the Mathematica system 606
References 609
The sponsors of the book 613

Mathematica 2, 5 ÷ 11.2 – trademarks of Wolfram Research Inc.


Maple 4 ÷ 11 – trademarks of MapleSoft Inc.

© Victor Aladjev, Michael Shishakov, Vjacheslav Vaganov. All rights reserved

November 7, 2017

For contacts: [email protected], [email protected], [email protected]

 No part of this book may be reproduced, stored in a retrieval system, or transcribed, in


any form or by any means electronic, mechanical, recording, photocopying, or otherwise.
Software described in this book is furnished under the license agreement and may be used
or copied only in accordance with the agreement. The source codes of software represented
in the book are protected by Copyrights and at use of any of them the reference to the book
and the appropriate software is required. Use of the enclosed software is subject to license
agreement and software can be used only in noncommercial purposes with reference to the
present book.

This is an authorized free edition from Obooko www.obooko.com

4
Practical programming in Mathematica
Preface
Systems of computer mathematics (SCM) find more and more wide application in a number of
natural, economical and social sciences such as: informatics, chemistry, mathematics, physics,
technologies, education, economics, sociology, etc. Such systems as Mathematica, Maple, Axiom,
Reduce, MuPAD, Derive, Magma, Maxima, Sage, MathPiper and others are more and more
demanded for learning of mathematically oriented disciplines, in scientific researches and
technologies. The SCM are main means for teachers, scientists, researchers, and engineers.
The researches on the basis of technology SCM, as a rule, well combine algebraic methods
with advanced computing methods. In this sense the SCM – a interdisciplinary area between
informatics and mathematics in which researches are concentrated on the development of
algorithms for algebraical (symbolical) and numerical calculations and data processing, and
on creation of programming languages along with program environment for realization of
this kind of algorithms and tasks of different purpose which are based on them.
So, the given book represents a certain set of the selected system problems whose purpose
not only to expand or make more effective the Mathematica system, but also to give certain
help to those users of Mathematica who would like to move from the user level to a level of
the programmer or to those who when using Mathematica already faced some its restrictions
and want to improve its software. At that, the skilled Mathematica programmers probably
will also be able to find for themselves in the present book a rather useful information of the
applied character, and for thinking.
Therefore, illumination only of certain questions essence without their detailed discussion,
certain nuances and consideration of adjacent questions which are interesting enough and
important per se often takes place. Moreover, the system tools, presented in the book can be
used as rather useful tools at developing own applications in the Mathematica software. In
our opinion, an analysis of the source codes of the means, presented in the book which use
both effective, and nonstandard methods of programming along with quite certain practical
interest will allow to master the Mathematica system more deeply. For convenience of their
use in the given quality the reader has possibility of free loading of MathToolBox package
for Mathematica system of versions 8 ÷ 11 which contains these tools [48]. According to the
experience of the package users, the presented tools are of interest not only as independent
means, but also contain a number of the methods rather useful in practical programming in
the Mathematica system.
The means considered throughout the present book completely answer to the main goal of
the offered book which can be characterized by the following two main directions, namely:
(1) representation of a number of useful enough tools of system character that expand and
supplement standard tools of the Mathematica system;
(2) illustration on their example of receptions and methods, enough useful in procedural and
functional programming, along with a number of rather essential features of these paradigms
of programming in the conditions of the Mathematica software.
Here is quite appropriate to note a quite natural mechanism of formation of own software
tools of the user working in some program environment. In course of programming of one
or other tools, or the whole project a certain situation is quite real when is rather expedient
to program some additional means that are absent among standard means, either they are
5
Victor Aladjev, Michael Shishakov, Vjacheslav Vaganov
more effective, or they are more convenient than standard tools. In many important cases
the applicability of these tools can have mass enough character, allowing to form program
toolkit of an quite wide range of applicability. At the same time, it should be noted that for
bigger convenience, the represented tools are systematized, however their systematization
to some extent has a rather conditional character (according to their basic purpose) because the
majority of the represented tools have multipurpose character. Furthermore, in some cases
tools which significantly use each other are in common represented.
Exactly in many respects thanks to the described mechanism we have created quite famous
library UserLib for the Maple along with package MathToolBox for the Mathematica which
contain more than 850 and 1140 means respectively [47,48]. All above means are supplied
with Freeware license and have open program code. Such approach to programming of many
projects both in the Mathematica, and in Maple also substantially promoted emergence of a
number of system means from above–mentioned library and package, when development
of software for simplification of its realization revealed expediency of definition of the new
accompanying tools of system character that are rather frequently used both in applied and
in system programming. So, openness of MathToolBox package code allows both to modify
the tools containing in it, and to program on their basis own tools, or to use their components
in various appendices. In our opinion, tasks and means of their realization in Mathematica
which are represented in the above package can be rather useful at deeper mastering of the
system and in a number of cases will allow to simplify rather significantly programming of
appendices in it, first of all, the system problems. At that, the methodological considerations
presented in our previous books [29-33,50] fully remain in force relative to the present book.
Means of MathToolBox have different complexity of organization and the used algorithms.
In certain cases, they use effective enough and nonstandard receptions of programming in
Mathematica. These means can be used as individually (for the decision of various problems or
for creation on their basis of new means), and in structure of MathToolBox package extending
standard means of Mathematica, eliminating a number of its defects and mistakes, raising
its compatibility relatively to its releases and raising effectiveness of programming of various
problems in Mathematica. Means presented in the book are supplied with descriptions and
explanations, contain the source codes and the more typical examples of their application.
At that, each description is provided by necessary considerations, concerning peculiarities
of program execution in Mathematica. Many of the represented tools can be quite useful in
practical programming in the Mathematica system.
The analysis of these source codes can quite initiate useful enough reasons on programming
of these or those objects in the Mathematica. At the same time it must be kept in mind, that
on the certain represented means of analogous appointment there can be different results,
illustrating various algorithms and methods of programming. Similar method pursues the
goals of both the training, and comparison of the different approaches.
And it is valid, experience of holding master classes on the Mathematica system with wide
use of the analysis of the initial codes of the means provided in the book and in the attached
MathToolBox package [48], with all evidence confirmed effectiveness of such approach in a
rather effective mastering of the built–in Math–language and the Mathematica system as a
whole. A lot of receptions used in the presented means increase the level of functional and
procedural programming along with extension of the Mathematica software as a whole. At

6
Practical programming in Mathematica
the same time it must be kept in mind, that for certain reasons some source codes weren't
exposed to complete optimization that can serve as a rather useful exercise for the reader.
That book considers certain principal questions of procedure–functional programming in
Mathematica, not only for decision of various applied problems, but, above all, for creation
of the software expanding frequently used facilities of the system and/or eliminating their
defects or expanding the system with new facilities. The software represented in this book
contains a series of useful and effective receptions of programming in Mathematica system,
and extends its software which enables more simply and effectively to programme in the
Mathematica system the problems of various purpose.
The represented monograph, is mostly for people who want the more deep understanding
in the Mathematica programming, and particularly those users who would like to make a
transition from the user to the programmer, or perhaps those who already have a certain
limited experience in Mathematica programming but want to improve own possibilities in
the system. While the expert Mathematica programmers will also probably find an useful
enough information for yourself.
At that, it should be noted that the source codes of means given in this book contain calls of
non–standard tools that didn’t find reflection in the present book in a number of cases, but
are presented in our package [48]. Among the presented receptions it should be noted those
receptions that, being nonstandard, have been practically tested, in a lot of cases simplifying
essentially the programming. Therefore, their detailed analysis requires acquaintance with
source codes of these means, at least, at the level of usage on them. Meantime, the principal
algorithms of many means of the presented book is rather well looked through and without
acquaintance with similar tools, while real use of these tools perhaps only after the loading
of this package into the current session.
Along with the illustrative purposes the means represented in this monograph quite can be
used and as enough useful means extending Mathematica that rather significantly facilitate
programming of a wide range of the problems first of all having the system character. The
represented means are some kind of program etudes which along with independent interest
allow to clear more deeply important nuances of programming in the Mathematica. At last,
in our opinion, the detailed analysis of the given source codes can be very effective remedy
on the path of deeper mastering of programming in Mathematica. Experience of holding of
the master classes of various levels on Mathematica and Maple with all evidence confirms
expediency of joint use of both the standard tools of the systems of computer mathematics,
and the user tools created during of programming of the various appendices [47,48,50].
Tools represented in the book increase the range and efficiency of use of the Mathematica,
above all, on the Windows platform owing to the innovations in three basic directions: (1) the
elimination of a number of basic defects and shortcomings, (2) extending of capabilities of a number
of standard means, and (3) replenishment of the system by new means which increase capabilities of
its program environment, including the means that improve the level of compatibility of versions 8 –
11. At last, with organization of the user software and programming of large-scale systems
in the Mathematica along with our standpoint on a question “Mathematica or Maple?” the
interested reader can familiarize in [29-33,50]. In the given book the certain considerations
on organization of the user software are presented. For instance, we propose an organization
of the user packages which is a rather convenient at various processings (for example, editing,

7
Victor Aladjev, Michael Shishakov, Vjacheslav Vaganov
programming of various means analyzing means of such or similar organization, etc.). At the same
time, many means represented in the book are oriented to the given organization, above all.
The attached MathToolBox package can be a bright example of such organization [48].
Note that Math–language isn’t the programming system like the majority of languages of a
package type because its scope is limited to the Mathematica. However acquaintance with
it and its pecularities rather essentially facilitates mastering of the Mathematica itself, other
programming languages and popular programming paradigms. It is promoted also by the
fact, that on a certain number of the principal moments of comparative analysis the systems
Mathematica and Maple seem as undoubted leaders of SCM.
At last, a lot of means represented in the above books is intended for extension of standard
means of the systems Mathematica and Maple along with elimination of their shortcomings
and mistakes. These means not only more accurately accent distinctions of both systems,
but also their problems of common character. And in this relation they allow to look from
various points of view on these or other both advantages, and shortcomings of two systems.
In the present book we present a lotr of means of similar type concerning the Mathematica
system. At that, it should be noted, that a mass optimization of procedures have not been
performed, procedures in many cases have been written, as they say on ‘sheet’; on the other
hand, numerous procedures have been optimized using both the standard tools and newly
created means of system character. In this context here there is a magnificent experimental
field for increasing of professionalism of the user at operating with Mathematica software.
On the examples of various means of a rather mass character the receptions, methods and
technique which are rather useful in practical programming in the Mathematica system, are
illustrated. At the same time, along with quite simple means, the means which use rather
complex algorithms demanding quite good possession of paradigm of the language of the
Mathematica and other tools of our package are represented in the book [48]. Furthermore,
on a number of examples which appeared as the result of programming and debugging of
certain means, have been revealed both the advantages, and the shortcomings of system of
Mathematica. The most essential of them are presented in the book on concrete examples.
Inclusion of source codes of the procedures and functions presented in this book with their
short characteristic directly in the book text allows to operate with them without computer,
considering a habit of considerable number of the users of the senior generation to operate
with program listings before exit to the computer what in a series of cases promoted better
programming in due time at programming in batch mode. In our opinion, skill to operate
with program listings is a rather important component of the programmer culture, allowing
better to feel the used program environment. In a certain measure it is similar to possession
of the musician by the sheet music. In our opinion that is based on conducting a number of
courses on the system Mathematics in a number of universities, the analysis of source codes
of the presented software will allow the user to master the programming paradigm of the
Mathematics system much better.
Indeed, because of not exactly convenient formatting of the presented means owing to the
book format there can be certain difficulties which it is possible to a certain extent to avoid,
using `MathToolBox.txt` file which is in archive attached to the present book [48]. Whereas
the questions of linguistic character arise due to the fact that English is not our native tongue.
Meanwhile, judging by the reviews of the readers of our previous book and the users of our

8
Practical programming in Mathematica
package from different countries, these problems do not prevent familiarization with this
book and the package attached to it.
Moreover, many listings of the presented tools have a rather small size, allowing to analyze
them outside of Mathematica in the assumption that the reader is sufficiently familiar with
its software. At mass existence of personal computers of various type the mentioned visual
analysis of the program listings was replaced with the mode of interactive programming,
however it is not not the same, and in the first case the process of programming seems to us
more better and efficient. Meanwhile, even means with small source code are often useful
enough at programming of various applications, in particular, of system character. Whereas
others demand for the understanding of serious enough elaboration, including acquaintance
with our package MathToolBox [48,50].
Naturally, the readability of source codes leaves much to be desired because of the booksize
format, font and its size, etc., and also because of not absolutely successful structuredness,
supported by Mathematica itself – in this context the procedures structuredness, supported
by Maple is presented to us as significantly more preferable. Meantime, this moment should
not cause any complications for fairly experienced programmers. In addition, existence of
different algorithms for a number of the presented tools, equivalent or almost, is caused by
desire to illustrate various methods and aspects of programming useful to use of the built-in
Mathematica-language in programming of various appendices in Mathematica. Namely a
certain redundancy of the represented means is caused, first of all, by desire to represent the
receptions, methods and approaches useful in practical programming in Mathematica.
As a rule, than the problem is more complex, the more time is required for mastering of the
tools necessary for its decision. In this context the software (blocks, procedures, functions, etc.)
which is presented in this book contain a number of rather useful and effective methods of
programming in the Mathematica environment and extends its program environment, they
give opportunity more simply and effectively to program various problems. These means in
the process of use of the MathToolBox package are updated, taking into account both the
new means, and the optimization of already existing means. In many problems of different
purpose the package MathToolBox showed itself as a rather effective toolkit. The package
on the freeware conditions is attached to the present book [48]. This package can be freely
uploaded from the website https://yadi.sk/d/oC5lXLWa3PVEhi.
The present book is oriented on a wide enough circle of the users of Computer Mathematics
Systems (CMS), researchers, mathematicians, physicists, teachers and students of universities
for courses of computer science, mathematics, physics, etc. The book will be of interest also
to the specialists of industry and technology, economics, medicine, etc., that use the CMS in
own professional activity.

The authors express deep gratitude and appreciation to Misters Michael Josten, Uwe Teubel
and Dmitry Vassiliev – the representatives of firms REAG Renewable Energy AG and Purwatt
AG (Switzerland) – for essential assistance rendered by preparation of the present book.

9
Victor Aladjev, Michael Shishakov, Vjacheslav Vaganov
Chapter 1. Additional tools in interactive mode of the Mathematica system

Further we will distinguish two main operating modes with Mathematica – interactive and
program. Under the first mode step–by–step performance with a Mathematica document,
i.e. from an input In[n] up to output Out[n] will be understood whereas under the program
mode the operating within a block or a module is understood. In this chapter some additional
tools rather useful at work with Mathematica in interactive mode are considered.
In a whole series of cases of operating with large documents there is expediency of deleting
from the current session of earlier used Out–paragraphs with the results unnecessary in the
future. This operation is provided by simple ClearOut procedure, whose call ClearOut[x]
returns nothing and at the same time deletes Out-paragraphs with numbers determined by
a whole positive number or their list x. The following fragment represents source code of the
ClearOut procedure with a typical example of its application. This procedure in some cases
also provides allocation of additional memory in work field of system which in case of large
documents is quite significant.
In[2520]:= ClearOut[x_ /; PosIntQ[x] || PosIntListQ[x]] :=
Module[{a = Flatten[{x}], k = 1}, Unprotect[Out];
For[k, k <= Length[a], k++, Out[a[[k]]] =.]; Protect[Out];]
In[2521]:= {Out[1508], Out[1510], Out[1511], Out[1515]}
Out[2521]= {42, 78, 2014, 480}
In[2522]:= ClearOut[{1508, 1510, 1511, 1515}]
In[2523]:= {Out[1508], Out[1510], Out[1511], Out[1515]}
Out[2523]= {%1508, %1510, %1511, %1515}
In addition, call of used function PosIntQ[x] or PosIntListQ[x] returns True if x – a positive
number or a list positive numbers accordingly; otherwise, False is returned. These functions
are located in our MathToolBox package [48]; in addition, many means represented below
also use means of this package.
On the other hand, in certain cases of work in the interactive mode a need of replacement of
Out–paragraphs onto other contents arises that simple ReplaceOut procedure implements,
whose call ReplaceOut[x, y] returns nothing, at the same time carrying out replacement of
contents of the existing Out–paragraphs which are determined by a whole positive or their
list x, by the new expressions determined by y argument. The call assumes parity of factual
arguments of x and y; otherwise, the call ReplaceOut[x, y] is returned unevaluated. The next
fragment represents source code of ReplaceOut procedure with typical examples of its use.
In[2025]:= AgnAvzVsv = 80
Out[2025]= 80
In[2026]:= ReplaceOut[x_ /; PosIntQ[x] || PosIntListQ[x], y___] :=
Module[{a = Flatten[{x}], b = Flatten[{y}], k = 1},
If[b != {}, If[Length[a] != Length[b], Defer[ReplaceOut[x, y]], Unprotect[Out];
For[k, k <= Length[a], k++, Out[a[[k]]] = b[[k]]]; Protect[Out]];, ClearOut[x]]]
In[2027]:= ReplaceOut[2825, 590]
In[2028]:= Out[2825]

10
Practical programming in Mathematica
Out[2028]= 480
In[2029]:= ReplaceOut[2825]
In[2030]:= Out[2825]
Out[2030]= %2825
Moreover, the call ReplaceOut[x] deletes contents of Out–paragraphs that are defined by x
argument, generalizing the previous ClearOut procedure.
Definition of variables in Mathematica. Like the majority of programming languages in the
Mathematica system for expressions the names (identifiers) are used, giving possibility in
the future to address to such named expressions on their names. So, on the operator "=" the
immediate assignment to one or several names of the demanded expression is made whereas
on the operator "x:=" – the postponed assignment. Distinction of both types of assignment is
supposed well known to the reader. For definition of assignment type that has been applied
to a name a simple enough DefOp procedure can be used whose call DefOp[x] returns the
type in the string format of assignment applied to the x name encoded also in string format,
namely: (1) "Undefined" – a x name isn't defined, (2) $Failed – a x name determines an object
different from a simple variable, (3) "=" – the immediate assignment has been applied to a x
name, (4) ":=" – the postponed assignment has been applied to a x name. The next fragment
represents source code of the procedure with examples of its application.
In[2040]:= DefOp[x_ /; StringQ[x] && SymbolQ[x] || SymbolQ[ToExpression[x]], y___]:=
Module[{a = PureDefinition[x], b = {y}, c, d},
If[a === $Failed, "Undefined", If[SuffPref[a, x <> "[", 1], $Failed,
c[h_] := StringReplace[a, x <> " " <> d <> " " –> "", 1];
If[SuffPref[a, x <> " = ", 1], d = "=", d = ":="]; If[b != {} && ! HowAct[y], y = c[d]]; d]]]
In[2041]:= v = 78; g = 66; s := 46; Kr = 20; Art := 27; Res := a + b + c; J[x_]:= x;
In[2042]:= Map[DefOp, {"v", "g", "s", "Kr", "Art", "Res", "Avz", "J"}]
Out[2042]= {"=", "=", ":=", "=", ":=", ":=", "Undefined", $Failed}
In[2043]:= Clear[y]; {DefOp["