first commit

This commit is contained in:
Yu Cong 2025-05-09 10:09:45 +08:00
commit c9b62cc0f5
9 changed files with 947 additions and 0 deletions

311
.gitignore vendored Normal file
View File

@ -0,0 +1,311 @@
.vscode/
.ds_store
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bbl-SAVE-ERROR
*.bcf
*.bcf-SAVE-ERROR
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
*.rubbercache
rubber.cache
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
*.slg
*.slo
*.sls
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplot
*.gnuplot
*.table
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.glog
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hypdoc
*.hd
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# newpax
*.newpax
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# svg
svg-inkscape/
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# titletoc
*.ptc
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib

BIN
SourceHanSerifSC-Bold.otf Normal file

Binary file not shown.

Binary file not shown.

BIN
hw3.pdf Normal file

Binary file not shown.

113
hw3.tex Normal file
View File

@ -0,0 +1,113 @@
\documentclass[11pt]{article}
\usepackage{myctex}
\usepackage{tikz}
\usepackage{tikz,fullpage}
\usetikzlibrary{arrows,%
petri,%
topaths}%
\usepackage{tkz-berge}
\usepackage{tkz-graph}
\GraphInit[vstyle=Normal]
\usepackage[position=top]{subfig}
\title{作业 3}
\author{11 丛宇 202411081537}
\date{}
\begin{document}
\maketitle
\section*{第四章}
\begin{itemize}
\item[1.] a 四个奇点 不行; b 可以; c 两个奇点 不行; d 可以
\item[3.] \begin{minipage}{0.9\textwidth}
\begin{figure}[H]
\centering
\subfloat[]{
\begin{tikzpicture}
\grCycle[prefix=v,Math=true,RA=1]{4};
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}
\SetVertexMath
\Vertex[x=0,y=0]{v_1}
\Vertex[x=2,y=0]{v_2}
\Vertex[x=1,y=1.5]{v_3}
\Vertex[x=3,y=1.5]{v_4}
\Vertex[x=1,y=3]{v_5}
\Edge(v_1)(v_2)
\Edge(v_1)(v_3)
\Edge(v_2)(v_3)
% \Edge(v_2)(v_4)
\Edge(v_3)(v_4)
\Edge(v_3)(v_5)
\Edge(v_4)(v_5)
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}
\grComplete[RA=1,prefix=v,Math=true]{4}
\end{tikzpicture}
}
\subfloat[]{
\begin{tikzpicture}
\grComplete[RA=1,prefix=v,Math=true]{2}
\end{tikzpicture}
}
\end{figure}
\end{minipage}
\item[4.] 归纳. $n=3$时显然成立. 假设对所有$n\leq k$成立, 现在考虑$n=k+1$. $m=\frac{k(k-1)}{2}+2$. 取 $v$$\deg(v)$ 最小的点, $G\setminus\set{v}$ 的边数 $m'\geq \frac{k(k-1)}{2}+2-(k-1)\geq \frac{(k-1)(k-2)}{2}+2$. 由归纳假设 $G\setminus\set{v}$ 包含 Hamilton cycle. 由于 $\deg(v)\geq 2$, $G$也包含 Hamilton cycle.
\item[5.] $S=\set{i,g,k,p,b,d}$, $\omega(G\setminus S)=7>6=|S|$.
\item[10.]
\begin{itemize}
\item $G$ 不是2-connected则存在两点 $u,v$之间只有一条 vertex disjoint path. 假设$G$有 Hamilton cycle, 则$u,v$之间存在两条vertex disjoint path. 矛盾.
\item 假设二分图$G$ 存在 Hamilton cycle, $(v_1,...,v_n,v_1)$, 则所有奇数编号点属于$X$, 所有偶数编号点属于$Y$$|X|=|Y|$. 与假设$|X|\neq|Y|$矛盾.
\end{itemize}
\item[12.] %假设 $G$ 无hamilton path. 对任意$(u,v)\notin E$, $G+(u,v)$ 不包含Hamilton cycle.
$d'_1\leq \dots\leq d'_n$$G+(u,v)$ 的度序列, 令$d_1\leq \dots\leq d_n$$G$ 的度序列. 由于$d'$中只有两个位置与$d$不同且都只$+1$, 不妨假设两个序列对应顶点相同. 因此 $d'_m\leq d_m+1\leq m$$d'_{n-m}\leq d_{n-m+1}<n-m$$G+(u,v)$成立. 由定理8, $G+(u,v)$ 一定包含 Hamilton cycle, 因此 $G$ 中一定有Hamilton path.
\item[13.] 假设$G$不是Hamilton图, 那么存在$m<n/2$, $G$ 度弱于$C_{m,n}$.
\begin{align*}
|E(G)| &\leq |E(C_{m,n})|\\
& \leq \frac{1}{2}[m^2+(n-2m)(n-m-1)+m(n-1)]\\
& = \binom{n-\delta}{2}+\delta^2-\frac{1}{2}(m-\delta)(2n-3m-3\delta-1)\\
& \leq \binom{n-\delta}{2}+\delta^2
\end{align*}
最后一个不等号是观察到 $m\geq \delta$, $2n-3m-3\delta -1>n/2-3\delta-1\geq -1$. 有$2n-3m-3\delta -1\geq 0$ (是整数).
因此与假设矛盾.
\end{itemize}
\section*{第五章}
\begin{itemize}
\item[2.] 考虑$T$中任何$\deg(v)=1$的点, 如果存在完美匹配, 与叶子相连的边都在匹配中. 可以确定性的知道$T$中所有边是否在匹配中. 因此完美匹配唯一(如果存在).
\item[5.] 3, 5
\item[7.] \begin{minipage}{0.4\textwidth}
\begin{tikzpicture}
\grComplete[RA=3,prefix=,Math=true]{9}
\end{tikzpicture}
\end{minipage}
cycles: $\begin{aligned}
&\set{1, 2, 8, 3, 7, 4, 6, 5, 9},\\
&\set{2, 3, 1, 4, 8, 5, 7, 6, 9},\\
&\set{3, 4, 2, 5, 1, 6, 8, 7, 9},\\
&\set{4, 5, 3, 6, 2, 7, 1, 8, 9}\\
\end{aligned}$
\item[13.]$K_{5,5}$的最小权重完美匹配. 30
\item[14.] SDR等价于bipartite matching 等价于 Hall's Theorem, 略
\item[18.] 等价于证明TutteBerge formula.
\begin{proof}
$d=\frac{1}{2}\min_{S\subset V} |V|-o(G-S)+|S|$, $\nu(G)$$G$的最大匹配的大小.
考虑任意点集$U\subset V$, 有$\nu(G)\leq |U|+\nu(G-U)\leq |U|+1/2(|V\setminus U|-o(G-U))$ 因为$G-U$的每个odd component都至少有一个点不能被匹配到. 因此 $\nu(G)\leq d$. 下面证明$d\leq \nu(G)$.
需要证明$\exists S\subset V$ 使 $|V|+|S|+o(G-S)=\nu(G)$. 满足条件的$S$是 Edmonds-Gallai decomposition. 所以$d\leq \nu(G)$.
\end{proof}
\end{itemize}
\end{document}

BIN
hw4.pdf Normal file

Binary file not shown.

53
hw4.tex Normal file
View File

@ -0,0 +1,53 @@
\documentclass[11pt]{article}
\usepackage{myctex}
\usepackage{tikz}
\usepackage{tikz,fullpage}
\usetikzlibrary{arrows,%
petri,%
topaths}%
\usepackage{tkz-berge}
\usepackage{tkz-graph}
\GraphInit[vstyle=Normal]
\usepackage[position=top]{subfig}
\title{作业 4}
\author{11 丛宇 202411081537}
\date{\today}
\begin{document}
\maketitle
\section*{第六章}
\begin{itemize}
\item[3.] 由欧拉公式 $\phi = m+2-n \leq 3n-6 +2-n=2n-4$.
\item[4.]
\begin{enumerate}
\item 由于极大平面图所有face degree都是3, 有 $3\phi=2m$. 由欧拉公式 $n+2m/3-m=2$得到$m=3n-6$
\item $\phi=2m/3=2n-4$
\item$n$ 归纳, $n=4$时显然成立. 假设$G$$k$个点的极大简单平面图. 若$\kappa(G)=1$, $G$ 中一定包含degree 是1 的点(简单图), 与极大简单平面图矛盾; 若$\kappa(G)=2$, 则存在两个点$u,v\in G$ s.t. $G-\{u,v\}$使 $G$ 不联通. 那么在$G$一定可以表示成两个图$G_1,G_2$ 的2-clique sum. 但是由于 $n>4$, 平面图$G_1$$G_2$都包含$u,v$之外的点, 一定存在$x\in G_1,y\in G_2$ s.t. $G+(x,y)$ 仍然是平面图, 与极大简单平面图假设矛盾. 因此$\kappa(G)\geq 3$.
\end{enumerate}
\item[5.] 显然. 假设$G$并非极大可平面图, 则存在$e\notin E$ s.t. $G+e$ 仍然是平面图. 与$n$个点的平面图边数$\leq 3n-6$矛盾.
\item[6.]
\begin{enumerate}
\item 容易发现$n\leq 4$时不是简单图,$n=5$时不是平面图. 所以$n\geq 6$. 假设$G$ 中只有5个顶点的度数不超过5, 有 $2m\geq 5+16+6(n-5)$, 得到$m\geq 3n-4.5$$m=3n-6$ 矛盾
\item$G$中只有11个点度数为5, 有$2m\geq 11*5+6(n-11)$, 得到$m\geq 3n-11/2$$m=3n-6$ 矛盾
\end{enumerate}
\item[8.]
\begin{enumerate}
\item 如果$G$有度数为2的点$u$,由于$n\geq 4$ 一定存在一个点$v$$u$不相邻, 显然$G+(u,v)$仍然是平面图
\item 假设只有两个度数$\leq 5$的点, $2m\geq 6(n-2)+2$, $m\geq 3n-4$ 矛盾
\item $2m\geq 6(n-3)+9$, $m\geq 3n-4.5$
\end{enumerate}
\item[25.] 1. matroid $M$ 中的cocircuit = dual matroid $M^*$ 中的circuit. planar graph 对应的 graphic matroid dual = planar dual graph 上的graphic matroid. (互为对偶,只需要证明一边. 假设$G$的cycle $C$$G^*$中的对应$C^*$不是cut, 那么令$C$内部的某个face对应的顶点为$v^*$, 在$G^*$中存在$(v^*,u^*)\in E$ s.t. $u^*$对应的face 不在$C$中. 显然$C$不是cycle) 2. Euler 图的cut大小一定是偶数. 由1知对偶图中所有cycle长度都是偶数. 无奇环一定是二分图.
\end{itemize}
\section*{第七章}
\begin{itemize}
\item[2.] 由推论2, 简单图点数$2k+1$, 边数$m=\Delta n/2=\frac{2k+1}{2}\Delta>k\Delta$, 所以$\chi'=\Delta+1$.
\item[3.] 如果所有cycle长度都是偶数, $G$是二分图, $\chi'=\Delta$. 如果所有cycle长度都是奇数, 由于两个cycle的对称差还是cycle, 观察到任意两个奇环不能共用边,只能共用点. 将每个奇环看成一个点, 共用顶点的奇环之间连边, 得到的图一定是 forest, 否则包含简单偶环. 由于每个奇环只需要3种颜色即可染色且奇环之间形成树(要求$G$联通), 容易看出$\chi'\leq \Delta$.
\item[4.]$n$归纳, base case是$P_3$,显然成立. 假设对所有$k\leq n-1$阶满足条件的简单图都有$\chi'=k-1$. 现在考虑$k$阶满足条件的简单图$G$, 其中$\deg(v)=k-1$. $G-v$满足归纳假设, 有一个$k-2$边染色, 所以一定存在一个$k-1$边染色. 重复使用$k-1$次引理1容易推出$G$也可$k-1$边染色.
\item[5.]
\end{itemize}
\end{document}

1
latexmkrc Normal file
View File

@ -0,0 +1 @@
$pdflatex=q/xelatex -synctex=1 %O %S/

469
myctex.sty Normal file
View File

@ -0,0 +1,469 @@
\ProvidesPackage{myctex}
\usepackage[fontset=none, scheme=plain]{ctex}
\setCJKmainfont{SourceHanSerifSC-Regular.otf}[BoldFont={SourceHanSerifSC-Bold.otf}, ItalicFont=SourceHanSerifSC-Regular.otf]
\RequirePackage[margin=1in]{geometry}
\RequirePackage{latexsym,amsmath}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage[colorlinks=true,urlcolor=Blue,citecolor=Green,linkcolor=BrickRed,unicode]{hyperref}
\RequirePackage[hyperref]{ntheorem} % theorem numbering
\RequirePackage{aliascnt}
\RequirePackage{xspace}
\RequirePackage{minted}
\RequirePackage{graphicx} % essentials
% \RequirePackage{microtype}
\RequirePackage[charter]{mathdesign} % change fonts
\RequirePackage{berasans, beramono}
\RequirePackage{eucal}
\RequirePackage[nocompress]{cite} % other convenient stuff
\RequirePackage{enumerate}
%\usepackage{pgf,tikz}
\RequirePackage{wrapfig}
\RequirePackage[medium,compact]{titlesec}
\RequirePackage{verbatim}
\newtheorem{theorem}{Theorem}[section]
\newaliascnt{lemma}{theorem}
\newaliascnt{corollary}{theorem}
\newaliascnt{conjecture}{theorem}
\newaliascnt{proposition}{theorem}
\newtheorem{lemma}{Lemma}[section]
\newtheorem{corollary}{Corollary}[section]
\newtheorem{conjecture}{Conjecture}[section]
\newtheorem{proposition}{Proposition}[section]
\newtheorem{problem}{Problem}
\newcommand{\lemmaautorefname}{Lemma}
\newcommand{\corollaryautorefname}{Corollary}
\newcommand{\conjectureautorefname}{Conjecture}
\newcommand{\propositionautorefname}{Proposition}
\newcommand{\problemautorefname}{Problem}
\newenvironment{definition}[1][Definition]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\newenvironment{example}[1][Example]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivliST}}
\newenvironment{remark}[1][Remark]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
\widowpenalty 5000
\clubpenalty 5000
\numberwithin{figure}{section}
\pagenumbering{arabic}
\urlstyle{same} % dammit
\hyphenation{co-or-din-ate co-or-din-ates half-plane half-space stereo-iso-mers stereo-iso-mer Round-table homol-ogous homol-ogy poly-hedron poly-hedra homeo-morphic homeo-morph-ism}
\pdfstringdefDisableCommands{\let\boldmath\relax} % allow \boldmath in section titles
\let\subsectionautorefname\sectionautorefname
\let\subsubsectionautorefname\sectionautorefname
% ----------------------------------------------------------------------
% Common Latin abbreviations, only one of which is actually kosher
% ----------------------------------------------------------------------
\def\etal{\emph{et~al.}} % and others
%\def\ie{\emph{i.e.}} % that is
\def\ie{\textcolor{red}{that is}}
%\def\eg{\emph{e.g.}} % for example
\def\eg{\textcolor{red}{for example}}
% -----------------------
% Common Names
% -----------------------
\def\Mobius{M\"obius\xspace}
% -----------------------
% useful shortcuts
% -----------------------
\def\cost{\cent}
% ----------------------------------------------------------------------
% Simple math stuff
% ----------------------------------------------------------------------
\renewcommand{\subset}{\subseteq}
% ---- SYMBOLS ----
\let\e\varepsilon % a ``real'' epsilon — better yet, just use Unicode ε.
%
% I give up. These are in the wrong font, but my kludged versions
% LOOK like kludges, especially \Z, \Q, and \C.
%
\def\Real{\mathbb{R}}
\def\Proj{\mathbb{P}}
\def\Hyper{\mathbb{H}}
\def\Integer{\mathbb{Z}}
\def\Natural{\mathbb{N}}
\def\Complex{\mathbb{C}}
\def\Rational{\mathbb{Q}}
\let\N\Natural
\let\Q\Rational
\let\R\Real
\let\Z\Integer
\def\Rd{\Real^d}
\def\RP{\Real\Proj}
\def\CP{\Complex\Proj}
% ---- OPERATORS (requires amsmath) ----
\def\aff{\operatorname{aff}}
\def\area{\operatorname{area}}
\def\argmax{\operatornamewithlimits{arg\,max}}
\def\argmin{\operatornamewithlimits{arg\,min}}
\def\Aut{\operatorname{Aut}} % Automorphism group
\def\card{\operatorname{card}} % cardinality, deprecated for \abs
\def\conv{\operatorname{conv}}
\def\E{\operatorname{E}} % Expectation: $\E[X]$ (like \Pr)
\def\EE{\operatornamewithlimits{E}}
\def\Hom{\operatorname{Hom}} % Homomorphism group
\def\id{\operatorname{id}} % identity
\def\im{\operatorname{im}} % image
\def\lcm{\operatorname{lcm}}
\def\lfs{\operatorname{lfs}} % local feature size
\def\poly{\operatorname{poly}}
\def\polylog{\operatorname{polylog}}
\def\rank{\operatorname{rank}}
\def\rel{\operatorname{rel\,}} % relative (interior, boundary, etc.)
\def\sgn{\operatorname{sgn}}
\def\vol{\operatorname{vol}} % volume
\def\fp#1{^{\underline{#1}}} % falling powers: $n\fp{d}$
\def\rp#1{^{\overline{#1}}} % rising powers: $n\rp{d}$
\def\setsymdiff{\operatorname{\triangle}}
% --- Darts and fences ---
% less nice replacements for stmaryrd characters
\@ifundefined{shortrightarrow}{\let\shortrightarrow\rightarrow}{}
\@ifundefined{shortleftarrow}{\let\shortleftarrow\leftarrow}{}
\@ifundefined{shortuparrow}{\let\shortuparrow\uparrow}{}
\@ifundefined{shortdownarrow}{\let\shortdownarrow\downarrow}{}
\def\arcto{\mathord\shortrightarrow}
\def\arcfrom{\mathord\shortleftarrow}
\def\arc#1#2{#1\arcto#2}
\def\cra#1#2{#1\mathord\shortleftarrow#2}
\def\fence#1#2{#1\mathord\shortuparrow#2}
\def\ecnef#1#2{#1\mathord\shortdownarrow#2}
% --- Cheap displaystyle operators ---
\def\Frac#1#2{{\displaystyle\frac{#1}{#2}}}
\def\Sum{\sum\limits}
\def\Prod{\prod\limits}
\def\Union{\bigcup\limits}
\def\Inter{\bigcap\limits}
\def\Lor{\bigvee\limits}
\def\Land{\bigwedge\limits}
\def\Lim{\lim\limits}
\def\Max{\max\limits}
\def\Min{\min\limits}
% ---- RELATORS ----
\def\deq{\stackrel{\scriptscriptstyle\triangle}{=}} % Use := instead.
\def\into{\DOTSB\hookrightarrow} % = one-to-one
\def\onto{\DOTSB\twoheadrightarrow}
\def\inonto{\DOTSB\lhook\joinrel\twoheadrightarrow}
\def\from{\leftarrow}
\def\tofrom{\leftrightarrow}
\def\mapsfrom{\mathrel{\reflectbox{$\mapsto$}}}
\def\longmapsfrom{\mathrel{\reflectbox{$\longmapsto$}}}
% ---- DELIMITER PAIRS ----
% --- always self-scaling delmiter pairs ---
\def\set#1{\left\{ #1 \right\}}
\def\floor#1{\left\lfloor #1 \right\rfloor}
\def\ceil#1{\left\lceil #1 \right\rceil}
\def\seq#1{\left\langle #1 \right\rangle}
\def\abs#1{\left| #1 \right|}
\def\norm#1{\left\| #1 \right\|}
\def\paren#1{\left( #1 \right)} % need better macro name!
\def\brack#1{\left[ #1 \right]} % need better macro name!
\def\indic#1{\left[ #1 \right]} % indicator variable; Iverson notation
%
% Macros to typeset sets like {foo|bar} with all three delimiters
% correctly scaled to fit. What I *really* want is a \middle macro
% that acts just like \left and \right. Grumble.
%
% Set version is handled by package braket.
\def\Bigbar#1{\mathrel{\left|\vphantom{#1}\right.\n@space}}
\def\Seqbar#1#2{\Seq{#1 \Bigbar{#1 #2} #2}}
\def\Brackbar#1#2{\Brack{#1 \Bigbar{#1 #2} #2}}
% Math mode fbox
\def\mfbox#1{\mathchoice{{\fbox{\ensuremath{\displaystyle #1}}}}
{{\fbox{\ensuremath{\textstyle #1}}}}
{{\fbox{\ensuremath{\scriptstyle #1}}}}
{{\fbox{\ensuremath{\scriptscriptstyle #1}}}}}
% ---- ``ACCENTS'' ----
% NB: Commands equivalent to \lrarrowfill and \overlrarrow are
% already defined in amstex!
\def\lrarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
\cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
\mkern-6mu\mathord\rightarrow$}
\def\overlrarrow#1{\vbox{\ialign{##\crcr
\lrarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
$\hfil\displaystyle{#1}\hfil$\crcr}}}
\def\Line#1{\!\overlrarrow{\vphantom{t}\smash{\,#1\,}}\!}
\def\Ray#1{\overrightarrow{\vphantom{t}#1\,}\!}
\def\Seg#1{\overline{\vphantom{t}#1}}
% ---- TEXT STYLES ----
\def\mathsc#1{\text{\textsc{#1}}}
\def\mathbs#1{\text{\boldmath\ensuremath{#1}}}
\def\EMPH#1{\textbf{\emph{\boldmath #1}}}
% ----------------------------------------------------------------------
% \begin{bigabstract}...\end{bigabstract}
% For use in documents with title pages. Use normal-sized text in
% the abstract!
% ----------------------------------------------------------------------
\newenvironment{bigabstract}%
{\begin{center}\large\textbf{\abstractname}\end{center}\begin{quotation}}%
{\end{quotation}}
% ----------------------------------------------------------------------
% Make captions smaller than the text, make their titles bold.
% Arguments: #1 == figure name: "Figure 5"
% #2 == caption: "Papers by \Erdos, 1900--2000 (projected)"
% Less space after floats and before caption, since captions are smaller
% ----------------------------------------------------------------------
\@ifundefined{abovecaptionskip}{\newlength\abovecaptionskip}
\long\def\@makecaption#1#2{
\vskip \abovecaptionskip
\setbox\@tempboxa\hbox{{\sffamily\footnotesize \textbf{#1.} #2}}
\ifdim \wd\@tempboxa >\hsize % if more than one line,
{\sffamily\footnotesize \textbf{#1.} #2\par} % typeset normally
\else % else
\hbox to\hsize{\hfil\box\@tempboxa\hfil} % center
\fi}
\dbltextfloatsep 18pt plus 2pt minus 4pt % was 20pt plus 2pt minus 4pt
\textfloatsep 18pt plus 2pt minus 4pt % was 20pt plus 2pt minus 4pt
\abovecaptionskip 6pt % was 10pt
% ----------------------------------------------------------------------
% Revised theorem environment:
% Add a period after the theorem number, and make theorems slanted
% instead of italic to help distinguish text from math. Use
% \boldmath in theorem label in case it includes math.
% ----------------------------------------------------------------------
\def\@opargbegintheorem#1#2#3{\trivlist
\item[\hskip\labelsep{\bfseries\boldmath #1\ #2\ (#3).}]\slshape}
\def\@begintheorem#1#2{\trivlist
\item[\hskip\labelsep{\bfseries\boldmath #1\ #2.}]\slshape}
% ----------------------------------------------------------------------
% \newproof{type}{text}(style)[post]:
% Define a new type of unnumbered ``theorem'' environment. The last
% two arguments are optional; most environments will not use them.
%
% To change label style, put new style command in label:
% \newproof{comment}{\textsf{Comment}}
% ----------------------------------------------------------------------
\def\newproof#1#2{\@ifnextchar({\@snproof{#1}{#2}}{\@snproof{#1}{#2}()}}
\def\@snproof#1#2(#3){\@ifnextchar[{\@xnproof{#1}{#2}{#3}}
{\@xnproof{#1}{#2}{#3}[]}}
\def\@xnproof#1#2#3[#4]{%\expandafter\@ifdefinable\csname #1\endcsname
{\global\@namedef{#1}{\@prf{#2}{#3}}\global\@namedef{end#1}{\@endprf{#4}}}}
\def\@prf#1#2{\@ifnextchar[{\@xprf{#1}{#2}}{\@yprf{#1}{#2}}}
\def\@xprf#1#2[#3]{\@yprf{#1\ (#3)}{#2}}
\def\@yprf#1#2{\begin{trivlist}\item[\hskip\labelsep{\bfseries\boldmath #1:}]#2}
\def\@endprf#1{#1\end{trivlist}}
%
% Standard proof envrionment: last line has a halmos at the right margin.
% Insert \qed to override default halmos placement.
% Incompatible with amsprf package!
%
\newif\ifneedqed
\global\needqedfalse
\@ifundefined{square}{\let\square\Box}{} % grumble latex2e
\def\QED{\ensuremath{{\square}}}
\def\markatright#1{\leavevmode\unskip\nobreak\quad\hspace*{\fill}{#1}}
\def\qed{\ifneedqed\markatright{\QED}\global\needqedfalse\else\null\fi}
\newproof{proof}{Proof\global\needqedtrue}[\qed]
\newproof{sketch}{Proof Sketch\global\needqedtrue}[\qed]
%
% 'Fake' proof environment, for use with wrapfig and similar packages
%
\newenvironment{rawproof}%
{\begin{trivlist}\item[\hskip\labelsep\textbf{Proof:}\global\needqedtrue]}%
{\qed\end{trivlist}}
%
% If the proof ends with a displayed equation, use \aftermath just
% before \end{proof} to put the halmos in the ``right'' place.
% Doesn't work worth a damn.
%
\def\aftermath{\par\vspace{-\belowdisplayskip}\vspace{-\parskip}\vspace{-\baselineskip}}
% ----------------------------------------------------------------------
% One-shot theoremish environment. For named things like ``Zorn's
% Lemma'' or ``The Death Leap Principle'' or ``The Zone Theorem''.
% To get one-shot proofish environment, put \normalfont inside.
% New improved version stolen from Erik Demaine.
% ----------------------------------------------------------------------
\newenvironment{oneshot}[1]{\@begintheorem{#1}{\unskip}}{\@endtheorem}
% Meh.
\def\Comment#1{\textsf{\textsl{$\langle\!\langle$#1\/$\rangle\!\rangle$}}}
\def\beginc@de{\noindent\begin{center}\begin{minipage}{1in}\tt
\begin{tabbing}~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=\kill}
\def\endc@de{\end{tabbing}\end{minipage}\end{center}}
\newenvironment{code}{\beginc@de}{\endc@de}
%
% These only work with <1 line of text. Use sparingly!!
%
\def\textul#1{\underline{\smash{#1}\vphantom{.}}}
\def\strike#1{\ensuremath{\overline{\text{\smash{#1}\vphantom{.}}}}}
% ----------------------------------------------------------------------
% Include a file verbatim. Searches the TEXINPUTS path for the file,
% even though that's probably not what you really want. Stolen from
% ``verbatimfiles.sty'' by Chris Rowley and others. [Don't use their
% \vertbatimlisting macro; it has some bizarre side-effects!]
% ----------------------------------------------------------------------
\def\verbinput#1{
\begingroup\@verbatim\frenchspacing\@vobeyspaces\input#1\endgroup
}
% ----------------------------------------------------------------------
% \now -- Current time in h:mm AM/PM format
% \mdyy -- Today's date in m/d/yy format. Forget Y2K; this is for humans!
% ----------------------------------------------------------------------
\newcount\timehh\timehh=\time
\divide\timehh by 60
\newcount\timemm\timemm=\time
\count255=\timehh
\multiply\count255 by -60
\advance\timemm by \count255
\newif\iftimePM
\ifnum\timehh>11 \timePMtrue\else\timePMfalse\fi
\ifnum\timehh<1 \advance\timehh by 12\fi
\ifnum\timehh>12 \advance\timehh by -12\fi
\def\now{\number\timehh:\ifnum\timemm<10 0\fi\number\timemm
\iftimePM pm\else am\fi}
\newcount\mdYY\mdYY=\year
\count255=\year
\divide\count255 by 100
\multiply\count255 by 100
\advance\mdYY by -\count255
\def\mdyy{\number\month/\number\day/\ifnum\mdYY<10 0\fi\number\mdYY}
% ----------------------------------------------------------------------
% Notes to myself. The margin flags are broken, thanks to an
% incompatibility with the geometry package.
% ----------------------------------------------------------------------
\def\n@te#1{\textsf{\boldmath \textbf{$\langle\!\langle$#1$\rangle\!\rangle$}}\leavevmode}
\def\n@tew@rn{\GenericWarning{}{AUTHOR WARNING: Unresolved \protect\note}}
\def\n@ten@te#1{\marginpar
[\hfill\llap{\textcolor{red}{{#1}$\!\Longrightarrow$}}]
{\rlap{\textcolor{red}{$\Longleftarrow\!${#1}}}}}
% Warning: The textcomp and mathdesign packages are incompatible!
%\def\n@tedingb@t{\@ifundefined{textmusicalnote}
% {$\maltese$} % if you don't have textcomp
% {\textmusicalnote}} % if you do have textcomp
\def\n@tedingb@t{\textcircled{$\maltese$}}
\def\note#1{\textcolor{red}{\n@tew@rn\n@te{\n@ten@te{\n@tedingb@t}#1}}}
\def\sidenote#1{\marginpar{\tiny\textsf{#1}}}
\setlength{\marginparsep}{0.1in}
\setlength{\marginparwidth}{\paperwidth}
\addtolength{\marginparwidth}{-\oddsidemargin}
\addtolength{\marginparwidth}{-\textwidth}
\addtolength{\marginparwidth}{-1.0\marginparsep}
\addtolength{\marginparwidth}{-1.0in}
%----------------------------------------------------------------------
% TODO sets enclosed text in a gray rectangle with a red border
% with small sans-serif text.
%----------------------------------------------------------------------
\definecolor{TODOcolor}{cmyk}{0.05,0,0,0}
\definecolor{TODOtxtcolor}{cmyk}{0,1,1,0}
\newenvironment{TODO}
{\fboxrule1.5pt\begin{lrbox}{\@tempboxa}
\begin{minipage}{0.9\columnwidth}\small\sffamily\color{TODOtxtcolor}}
{\end{minipage}
\end{lrbox}
\medskip\centerline{\fcolorbox{TODOtxtcolor}{TODOcolor}{\usebox{\@tempboxa}}}
\sidenote{\LARGE\color{Red}$\bigstar\bigstar\bigstar$}\medskip}
%----------------------------------------------------------------------
% Bibliography aliases, so I can use mnemonic citation keys and
% geom.bib at the same time. \bibalias{foo}{bar} makes \cite{foo}
% act (almost) exactly like \cite{bar}. I dont actually use this.
%----------------------------------------------------------------------
\def\bibalias#1#2{%
\global\@namedef{b@#1}{%
{\@ifundefined{b@#2}{\textsf{?}}{}\csname b@#2\endcsname}}}
% ----------------------------------------------------------------------
% Draft notice. Put \DRAFT on the title page, in place of \date.
% ----------------------------------------------------------------------
\def\draftnotice{Preliminary draft --- \mdyy\ --- Not for distribution}
\def\DRAFT{
\date{\fbox{\textsf{\textbf{\draftnotice}}}}
\def\@oddfoot{\footnotesize\hss\fbox{\textbf{\textsf{\draftnotice}}}\hss}
\let\@evenfoot\@oddfoot
}
%----------------------------------------------------------------------
% 'cramped' list style, stolen from Jeff Vitter. Doesn't always work.
%----------------------------------------------------------------------
\def\cramped
{\parskip\@outerparskip\@topsep\parskip\@topsepadd2pt\itemsep0pt
}
%----------------------------------------------------------------------
% More footnote symbols, please.
%----------------------------------------------------------------------
\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
\mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
\or \ddagger\ddagger \or \mathsection\mathsection \or
\mathparagraph\mathparagraph \else\@ctrerr\fi}}
%----------------------------------------------------------------------
% TeXbook style quotations -- I should really use the right font, tho.
%----------------------------------------------------------------------
\newenvironment{rightquote}[1]
{\flushright\begin{minipage}{#1\textwidth}
\parskip0pt\footnotesize\sffamily\slshape}
{\end{minipage}\par\bigskip}
\def\quotee#1{\par\vspace{0.5ex}\begin{flushright}\unskip\textup{--- #1}\end{flushright}\unskip}
%----------------------------------------------------------------------
% Creative Commons license
%----------------------------------------------------------------------
\def\CCLicense#1{\vfill\vbox to 0pt{\centering\tiny\sffamily \textcopyright\ Copyright \number\year\ Chao Xu.\\ This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}).\\ Free distribution is strongly encouraged; commercial distribution is expressly forbidden.\quad See {#1} for the most recent revision.\vss}}