Commit 33cd852e authored by Jim Hefferon's avatar Jim Hefferon

initial load of parts of book

parents
This is _Linear Algebra_ by Jim Hefferon. The release date is 2011.
You are free to use this material.
For more information, see 1st_readme.pdf, or the web site
http://joshua.smcvt.edu/linearalgebra
.
INSTALL
Put book.pdf and jhanswer.pdf in the same directory. Point your pdf reader
at it.
COMPILING
Why?
Sigh. OK.
Unzip all the .zip files in a single directory. Run make_book_for_web.sh.
That's how I do it (with TeX Live 2010 on an Ubuntu notebook; takes about
3 minutes). At the end, you'll have book.pdf and jhanswer.pdf. Put them
in the same directory. You could have skipped the compiling, you know.
Jim
jim at joshua.smcvt.edu
\ No newline at end of file
File added
This diff is collapsed.
This diff is collapsed.
Acknowledgements for _Linear Algebra_ by Jim Hefferon
This document was started 2001-Oct-08, in response to the help
I've been offered by various people from the web.
Thank you!
======================================================
General:
I'd like to thank Saint Michael's College, the Math Department at
Saint Michael's College, and specifically George Ashline, Rick Cleary,
and Lloyd Simons for using drafts of this book in class. Their
feedback was very helpful. In particular, GA pointed out many
typos.
2001-Oct-08
Guillaume Belanger, typo
Gabriel Gellen, some typos
Ken Yocom and John Iverson, typos, corrections
2002-Dec-31
Clarke Stone, typo
Javed Iqbal, PDF misbehavior
2003-Feb-26
Bob Hayden, many corrections in the Leontief topic
Brandon Barker, typo
Hynek Hanke, typo
Jon Thurmond, typo
Sheldon Robinson, typo
Jack Moffitt, typo
2003-May-13
Jack Moffitt, typos
2008-July-20
Harry (ypsilonj at domain gmail.com), typos
Einar Bjarki Gunnarsson, corrections to answers
Clint Ward, correction to exercise
Yufei Chen, corrections to exercises
Bernd Losert, many corrections and clarifications of exercises.
Dinko Tenev, correction to an exercise
Tom Fitzhenry, correction to an exercise
Oliver Ferrari, correction to an exercise
Dan Boswel, correction to an exercise
Pedro Arias Castanedo, correction to preface
Ali Ghodsi, several very helpful corrections to text body
2011-Jan-01
Goran Topic exercise suggestion
Raphaele Herbin misplaced reference
Keith Russell correction to discussion in Method of Powers
David Garcia Quintas corrections to exercise and text body
Lennon Conson correction to exercise answer
Ali Ghodsi corrections to two diagrams
Wlodek Bryc correction to exercise answer
Jacob Schlather suggestions about linear recurrences
Jim Schmitz corrections to exercise answers
Gideon Mann correction to formula
Pavel Dudrenov correction to computer code
Mike Bibby comment about an example
Adrian Suarez comment about the presentation
Fred Maranhao correction of exercise
Barrett Walls for a review with many helpful comments and corrections
Barbara Glass for a review also with many helpful comments and corrections
Iason Irusodimos for the review also with helpful comments and corrections
Stephen Solomon of Eleven Learning arrangement of the reviews
\ No newline at end of file
% answerjh.sty 2001-May-23
\typeout{2001-May-23 Document Style `answerjh'. Jim Hefferon}
\RequirePackage[single,nowrite]{bookans} %!!! no write !!! else ereases answers
\RequirePackage{linalgjh,bookjh}
% PAGE DIMENSIONS
\usepackage{vmargin}
\setmarginsrb{1in}{1in}{1in}{1in}%
{12pt}{4pt}{0pt}{0pt}
% HEADERS and FOOTERS
\RequirePackage{fancyhdr}
\pagestyle{fancyplain}
\lhead[\fancyplain{}{\thepage}]{\fancyplain{}{\textit{Answers to Exercises}}}
\chead[\fancyplain{}{}]{\fancyplain{}{}}
\rhead[\fancyplain{}{\textit{Linear Algebra, by Hef{}feron}}]{%
\fancyplain{}{\thepage}}
\lfoot[\fancyplain{}{}]{\fancyplain{}{}}
\cfoot[\fancyplain{\thepage}{}]{\fancyplain{}{}}
\rfoot[\fancyplain{}{}]{\fancyplain{}{}}
%\setlength{\footrulewidth}{0pt}
\setlength{\headwidth}{\textwidth}
%\renewcommand{\p@theorem}{\relax}
% jh; stuff I often use
% Changed to support new kind of enumeration environment jh 90-7-10
\def\labelenumi{(\arabic{enumi})}
\def\theenumi{\arabic{enumi}}
\def\labelenumii{\(\bullet\)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}
\def\labelenumiii{(\roman{enumiii})}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}
\def\labelenumiv{\bf --}
\def\theenumiv{\Alph{enumiv}}
\def\p@enumiv{\p@enumiii\theenumiii}
\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\ast$}
\def\labelitemiv{$\cdot$}
% ANSWERLIST
% Answers are set inside this list.
\newcounter{answerlistcounter}
\newcommand{\answerlabel}[1]{{\bfseries #1}}
\newenvironment{answerlist}{%
\begin{list}{\relax
}{\usecounter{answerlistcounter}
\renewcommand{\makelabel}{\answerlabel}
\setlength{\leftmargin}{1em}
\setlength{\rightmargin}{0em}
\setlength{\parsep}{\parskip}
\setlength{\itemsep}{.7ex plus .25ex minus .15ex}
\setlength{\itemindent}{0em}
\setlength{\listparindent}{\parindent}
\setlength{\topsep}{0ex plus 5pt}
\setlength{\partopsep}{0ex plus 5pt}
\setlength{\labelsep}{1em}
\setlength{\labelwidth}{0em}
\setlength{\abovedisplayskip}{3pt plus2pt minus3pt}%
\setlength{\belowdisplayskip}{\abovedisplayskip}
\setlength{\abovedisplayshortskip}{0pt plus2pt}%
\setlength{\belowdisplayshortskip}{3pt plus2pt minus3pt}
}
}{\end{list}%
}
% An \item in the answerlist is made by \begin{ans}{One.II.3.4} .. \end{ans}
% They were put there by answer.sty on LaTeX-ing the book.
\ifhrefout
\renewenvironment{ans}[1]{\item[\hyperref{book.pdf}{exercise}{#1}{#1}\hypertarget{ans.#1}{}]}{%
}
\else
\renewenvironment{ans}[1]{\item[#1]}{%
}
\fi
% \answerspacer
% \answerdivider
% Visual candy put into answer files to separate answers from different
% sections and chapters.
%\newcommand{\answerspacer}{\relax}
%\newcommand{\answerdivider}{\vspace{5ex plus 2ex minus 1ex}\hbox to \textwidth{\rule{0in}{.25in}
% \leaders\hbox to 1em{\hss.\hss}\hfill}}
%=======================================
% Disclaimer that the answer is as in the published source for the question.
\newcommand{\answerasgiven}{%
\textit{This is how the answer was given in the cited source. }}
%--------exparts and exparts*
% For exercises with sub-parts. The *-ed version prints them across:
% (a) xxx (b) yyy (c) zzz ..
% while the un-*-ed version prints them down:
% (a) xxx
% (b) yyy
% Use this way:
% \begin{exparts}
% \partitem % not just \item so works in *-ed version.
% \end{exparts}
% Remark: I don't think I can use, say, paralist. I *don't* want:
% (a) Yes. (b) No; the reason is that we cannot
% find any counterexample (c) Yes.
% and I lack the TeX skills to automate the job of selecting the
% *-ed or un-*-ed version depending.
%
\renewenvironment{exparts}{%
\def\partsitem{\item\relax}%
\begin{expartslist}%
}{%
\end{expartslist}}
%
\renewenvironment{exparts*}{%
\def\partsitem{\penalty-400\hskip1.25em\relax\hbox{%
\refstepcounter{expartscount}\textbf{(\alph{expartscount})}\hspace*{.5em}}\nobreak}
\begin{expartslist}
\setlength{\itemindent}{-1.25em}
\rightskip=0pt plus7em\spaceskip=.3333em\xspaceskip=.5em\relax%
\item[]}{%
\end{expartslist}}
%
\renewenvironment{expartslist}{%
\begin{list}{\textbf{(\alph{expartscount})}}{
\usecounter{expartscount}
\setlength{\leftmargin}{1em}
\setlength{\rightmargin}{0em}
\setlength{\listparindent}{\parindent}
\setlength{\itemindent}{0em}
\setlength{\labelsep}{.4em}
\setlength{\labelwidth}{0em}
\setlength{\topsep}{0ex}
\setlength{\parskip}{0ex}
\setlength{\partopsep}{0ex}
\setlength{\parsep}{0ex}
\setlength{\itemsep}{0ex}
}%
}{%
\end{list}}
%
%...........end: exparts and exparts*
%\renewcommand{\thechapter}{\Englishnumber{\value{chapter}}}
\renewcommand{\thesection}{\thechapter.\Roman{section}}
\renewcommand{\chaptermark}[1]{% docs in fancyheadings.
\markboth{\chaptername~\thechapter. #1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{Section~\Roman{section}. #1}}
%\renewcommand{\thesubsection}{\arabic{subsection}}
%end headings
%\renewcommand{\subsection}{\@startsection%
% {subsection}{2}{0em}{10ex plus1ex minus1ex}{1em}%
% {\raggedright\large\bfseries}}
% Format the answer label.
\renewcommand{\ansparams}{{\Currentlabel}}
% CROSS REFERENCES
% References in the answers that are hypered are not internal to the
% answer file; they need to link to the book file.
\newcommand{\bookname}{book.pdf}
%\makeatletter
\ifhrefout
\newcommand{\bookreference}[2]{% #1=ref type (`Definition', etc.), #2=ref
\def\jhans@anchorname{% name like `theorem.1234'
\expandafter\expandafter\expandafter\@fourthoffive\csname r@#2\endcsname}%
\def\jhans@farref{\bookname\#\jhans@anchorname}% like `book.pdf#ans.1234'
\def\jhans@reftext{%
\expandafter\expandafter\expandafter\@firstoffive\csname r@#2\endcsname}%
#1~\expandafter\href\expandafter{\jhans@farref}{\jhans@reftext}%
}
\renewcommand{\nearbydefinition}[1]{\bookreference{Definition}{#1}}
\renewcommand{\nearbyfigure}[1]{\bookreference{Figure}{#1}}
\renewcommand{\nearbylemma}[1]{\bookreference{Lemma}{#1}}
\renewcommand{\nearbyexample}[1]{\bookreference{Example}{#1}}
\renewcommand{\nearbycounterexample}[1]{\bookreference{Counterexample}{#1}}
\renewcommand{\nearbytheorem}[1]{\bookreference{Theorem}{#1}}
\renewcommand{\nearbycorollary}[1]{\bookreference{Corollary}{#1}}
\renewcommand{\nearbyexercise}[1]{\bookreference{Exercise}{#1}}
\renewcommand{\nearbyremark}[1]{\bookreference{Remark}{#1}}
\renewcommand{\nearbynotice}[1]{\bookreference{Notice}{#1}}
\renewcommand{\nearbynote}[1]{\bookreference{Note}{#1}}
\fi
% PAGE LAYOUT
%
% CHAPTER and SUBSECTION commands
\renewcommand{\chapter}{\secdef\chapcmda\chapcmdb}
\newcommand{\chapcmda}[2][]{%
\addcontentsline{toc}{chapter}{#1}%
\chapheader{#1}}
\newcommand{\chapcmdb}[1]{\chapheader{#1}}
\newcommand{\chapheader}[1]{\end{answerlist}
\clearemptydoublepage\thispagestyle{empty} %
\vspace*{4ex}
{\centering{\LARGE\bfseries #1}}%
\vspace{-2ex plus1ex}%
\begin{answerlist}\item[]
}
\renewcommand{\section}{\@startsection%
{section}{1}{0em}{-12ex plus1ex minus2ex}{1em}%
{\raggedright\Large\bfseries}}
\renewcommand{\subsection}{\secdef\anssubseccmda\anssubseccmdb}
\newcommand{\anssubseccmda}[2][?]{%
%\end{answerlist}
\addcontentsline{toc}{subsection}{#1}%
\anssubsecheader{#2}}
\newcommand{\anssubseccmdb}[1]{\anssubsecheader{#1}}
\newcommand{\anssubsecheader}[1]{\end{answerlist}%
\vspace{4ex plus1ex minus.5ex}\pagebreak[3]\vspace*{1ex plus1ex minus.25ex}%
{\flushleft\large\bfseries #1}%
\nopagebreak\vspace{1ex plus .5ex minus.5ex}\nopagebreak\begin{answerlist}\item[]}
%end PAGE LAYOUT
% Resolve References
\input{book.aux}
\endinput
%%
%% This is file `answers.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% answers.dtx (with options: `answers')
%%
%% Copyright (C) 1990,1994 Mike Piff, University of Sheffield, England
%%
%% You are not allowed to change this file.
%%
%% You are NOT ALLOWED to distribute this file alone. You are NOT
%% ALLOWED to take money for the distribution or use of this
%% file except for a nominal charge for copying etc.
%%
%% Please address any problems to:
%%
%% M.Piff@shef.ac.uk
%%
%% For updates, contact your nearest CTAN site.
%%
\def\fileversion{2.10}
\def\filedate{16 Dec 1997 17:05:29 BST}
\def\filename{answers.dtx}
\def\Copyright{Copyright (C) 1990,1994 Mike Piff,
University of Sheffield, England}
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\ProvidesPackage{answers}[1996/07/10]
\typeout{Package `answers' <\filedate>.}
\typeout{\Copyright}
\newif\ifanswerfiles \answerfilestrue
\DeclareOption{nosolutionfiles}{\answerfilesfalse
\typeout{No answer files being produced}}%
\ProcessOptions
\RequirePackage{verbatim}
\newcommand{\solutionpoint}{.}
\newcommand{\solutionextension}{tex}
\newenvironment{Filesave}[1]{%
\@bsphack
\def\verbatim@processline{}%
\Iffileundefined{#1}{}{%
\Ifopen{#1}{%
\def\verbatim@processline{%
\Ifanswerfiles{%
\immediate\write\@nameuse{#1@file}%
{\the\verbatim@line}%
}{}%
}%
}{}%
}%
\let\do\@makeother\dospecials
\catcode`\^^M\active \catcode`\^^I=12\relax
\verbatim@start
}{\@esphack}
\newcommand{\Writetofile}[2]{%
\@bsphack
\Iffileundefined{#1}{}{%
\Ifopen{#1}{%
{%
\let\protect\string
\Ifanswerfiles{%
\immediate\write\@nameuse{#1@file}{#2}%
}{}%
}%
}{}%
}%
\@esphack
}
\newcommand{\Ifopen}[3]{%
\csname if#1open\endcsname#2\else#3\fi}%
\newcommand{\Iffileundefined}[3]{%
\csname ifx\expandafter\endcsname
\csname #1@file\endcsname\relax
#2\else#3\fi}
\newcommand{\Ifanswerfiles}[2]{%
\ifanswerfiles #1\else #2\fi}
\def\Opensolutionfile#1{%
\@ifnextchar[{\define@filename{#1}}%
{\define@filename{#1}[#1]}}%
\def\define@filename#1[#2]{%
\global\@namedef{#1@filename}{#2\solutionpoint\solutionextension}%
\Ifanswerfiles{%
\typeout{Output from handle #1 going
to #2.\solutionextension}%
}{}%
\Iffileundefined{#1}{%
\expandafter\newwrite\csname #1@file\endcsname
\csname newif\expandafter\endcsname
\csname if#1open\endcsname
\global\csname #1openfalse\endcsname
\expandafter\ifx\csname Open#1hook\endcsname\relax
\global\@namedef{Open#1hook}##1{}%
\fi
\expandafter\ifx\csname Close#1hook\endcsname\relax
\global\@namedef{Close#1hook}##1{}%
\fi
}{}%
\let\Tmp\relax
\Ifopen{#1}{\typeout{File #1 already open}}{%
\Ifanswerfiles{%
\immediate\openout\@nameuse{#1@file}=%
\@nameuse{#1@filename}%
}{}%
\global\csname#1opentrue\endcsname
\def\Tmp{\@nameuse{Open#1hook}{#1}}%
}%
\Tmp
}
\def\Closesolutionfile#1{%
\let\Tmp\relax
\Iffileundefined{#1}{}{%
\Ifopen{#1}{%
\Ifanswerfiles{%
\immediate\closeout\@nameuse{#1@file}%
}{}%
\global\csname #1openfalse\endcsname
\def\Tmp{\@nameuse{Close#1hook}{#1}}%
}{}%
}%
\Tmp
}
\def\Readsolutionfile#1{%
\Ifanswerfiles{%
\Iffileundefined{#1}{}{%
\Ifopen{#1}{%
\typeout{WARNING: attempt to read open file #1}%
}{%
\edef\Tmp{%
\noexpand\InputIfFileExists
{\@nameuse{#1@filename}}{}%
{\noexpand\message{File
\@nameuse{#1@filename}%
\space not found}}%
}%
\Tmp
}%
}%
}{}%
}
\newcommand{\Newassociation}[3]{%
\newsolution{#2}%
\expandafter\ifx\csname #3opentrue\endcsname\relax
\expandafter\newif\csname if#3open\endcsname
\fi
\newenvironment{#1}{%
\Ifanswerfiles{%
\let\Tmp\relax
\Iffileundefined{#3}{}{%
\Ifopen{#3}{%
\immediate\write\@nameuse{#3@file}%
{\string\begin{#2}\@nameuse{#2params}}%
\def\Tmp{\Filesave{#3}}%
}{}%
}%
}{%
\edef\Tmp{\noexpand\begin{#2}\@nameuse{#2params}}%
}%
\csname pre#1\endcsname
\Tmp
}%
{%
\Ifanswerfiles{%
\Iffileundefined{#3}{}{%
\Ifopen{#3}{%
\endFilesave%
\immediate\write\@nameuse{#3@file}%
{\string\end{#2}}%
\csname post#1\endcsname
}{}%
}%
}{%
\end{#2}%
}%
}%
}
\newcommand{\newsolution}[1]{%
\@ifundefined{#1}{%
\global\@namedef{#1params}{{\Currentlabel}}%
\newenvironment{#1}[1]%
{%
\csname pre#1\endcsname
\trivlist
\item[\hskip\itemsep{\@nameuse{#1label}{##1}}]}%
{\csname post#1\endcsname\endtrivlist}%
\global\@namedef{#1label}##1{\solutionstyle{##1}}%
}{\typeout{WARNING: environment #1 already in use}}%
}
\newcommand{\solutionstyle}[1]{\textbf{#1}}
\newcommand{\Currentlabel}{\@currentlabel}
\endinput
%%
%% End of file `answers.sty'.
% appen.mp
% MetaPost input file with appendix pictures.
%
% HISTORY
% 2001-Apr-15 Jim Hefferon jim@joshua.smcvt.edu Written
verbatimtex
%&latex
\documentclass{book}
\usepackage{dvidrv} \usepackage{hrefout}
\usepackage{bookjh,linalgjh}
\usepackage{color}
\usepackage{verbatim}
\begin{document}
etex
input jh
input arrow
input venn
defaultscale := 9pt/fontsize defaultfont;
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
def place_P(expr loc) =
label(btex {\scriptsize $P$} etex, loc);
enddef;
def place_Q(expr loc) =
label(btex {\scriptsize $Q$} etex, loc);
enddef;
beginfig(1); % diagram of a NOT
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_one(true,false);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
endfig;
beginfig(2); % diagram of a AND
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_two(false,false,true,false);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
place_Q((venn_circle_right_shift,venn_circle_top_shift)
+.45(venn_circle_diameter/2,venn_circle_diameter/2));
endfig;
beginfig(3); % diagram of a OR
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_two(false,true,true,true);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
place_Q((venn_circle_right_shift,venn_circle_top_shift)
+.45(venn_circle_diameter/2,venn_circle_diameter/2));
endfig;
beginfig(4); % diagram of a IMPLIES
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_one(false,true);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
save pth, superset; path pth, superset;
pth = fullcircle rotated 90 scaled 1.2venn_circle_diameter
shifted (venn_circle_left_shift,venn_circle_top_shift);
superset = subpath (0length(pth),.5length(pth)) of (pth shifted (-.5u,0))
..subpath (.5length(pth),length(pth)) of (pth shifted (2u,0))
..cycle;
pickup pencircle scaled venn_pen; draw superset;
place_Q((venn_circle_right_shift,venn_circle_top_shift)
+.45(venn_circle_diameter/2,venn_circle_diameter/2)
+(2u,0));
endfig;
beginfig(5); % diagram of a IFF
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_one(true,false);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
place_Q((venn_circle_right_shift,venn_circle_top_shift)
+.45(venn_circle_diameter/2,venn_circle_diameter/2));
endfig;
beginfig(6); % diagram of a forall
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_none(true);
endfig;
beginfig(7); % diagram of a exists
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_one(true,false);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
pickup pencircle scaled line_width_light;
for i=1 upto 15:
drawdot((uniformdeviate venn_width,uniformdeviate venn_height));
endfor
endfig;
beginfig(8); % diagram of a x\in P
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=10pt; v:=u; w:=v;
draw_venn_one(true,false);
place_P((venn_circle_left_shift,venn_circle_top_shift)
+.45(-venn_circle_diameter/2,venn_circle_diameter/2));
z0 = (venn_circle_left_shift,venn_circle_top_shift)
-.3(-venn_circle_diameter/2,venn_circle_diameter/2);
pickup pencircle scaled line_width_light;
drawdot(z0);
label.rt(btex {\scriptsize $x$} etex,z0);
endfig;
beginfig(9) % bean with mapsto
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=.18in; v:=u; w:=v;
save codshift; pair codshift; codshift = (7w,0); % how far shifted
draw generic_set(2w,4.25v);
draw generic_set(2.1w,4.4v) shifted codshift;
save many_pts; path many_pts; many_pts = (0,-5pt)--(0,5pt);
z0 = (1.4w,.8v); z1= (1.5w,.9v);
z2 = (.8w,2.1v); z3= (1w,2.1v);
z4 = (1.25w,3.3v); z5= (1.5w,3.1v);
pickup pencircle scaled line_width_light;
forsuffixes s = 0, 2, 4:
draw (many_pts shifted z[s]) dashed withdots scaled 0.3;
drawdot (z[s+1] shifted codshift);
draw_action_arrow((z[s]{(3,1)}..(z[s+1] shifted codshift)));
endfor
endfig;
beginfig(10) % equiv relation; partition with parts labelled
numeric u; %scaling factor
numeric v; %vertical scaling factor
numeric w; %horizontal scaling factor
u:=1.2in; v:=u; w:=v;
path p[]; partition;
label(btex {\scriptsize \ldots} etex,z13);
x14=.45[x0,x9]; y14=.5[y10,y9];