\usepackage{array,amsthm,amsmath,amssymb,mathrsfs,mdwlist,color,verbatim,multirow,amscd,rotate,stmaryrd}
\usepackage[all,cmtip]{xy}

%arydshln
%% Margins %%
\providecommand{\U}[1]{\protect\rule{.1in}{.1in}}
\setlength{\topmargin}{-.5in}
\setlength{\textheight}{9.25in}
\setlength{\oddsidemargin}{0.0in}
\setlength{\evensidemargin}{0.0in}
\setlength{\textwidth}{6.5in}

             %%%%%          MACROS         %%%%%%
\newcommand{\ds}{\displaystyle}

%% Logic %%
\newcommand{\proves}{\vdash}		\newcommand{\noproves}{\nvdash} 	% Turnstiles
\newcommand{\thinks}{\vDash}		\newcommand{\nothinks}{\nvDash} 	% Double Turnstiles
\newcommand{\A}{\forall}		\newcommand{\E}{\exists} 		% Quantifiers
\newcommand{\iso}{\cong}						% Isomorphism
\newcommand{\oor}{\vee}		\newcommand{\oand}{\wedge}	% And/Or Operators
\newcommand{\imp}{\rightarrow}	\newcommand{\bimp}{\leftrightarrow}	% Implication/Bi-implication
\newcommand{\nand}{\uparrow}	\newcommand{\nor}{\downarrow} 	% NAND and NOR
\newcommand{\true}{\top}		\newcommand{\false}{\bot}		% True and False




%% Set Theory %%
\newcommand{\On}{\text{On}}
\newcommand{\set}[1]{\ensuremath{\left\lbrace\, #1 \,\right\rbrace}}		% Set with spacing
\newcommand{\s}[1]{\ensuremath{\left\lbrace#1\right\rbrace}} 			% Set without spacing
\newcommand{\cf}{\operatorname{cf}}						% cofinality
\newcommand{\contains}{\supseteq}	\newcommand{\extends}{\supseteq}	% Superset
\newcommand{\sbs}{\subseteq}		\newcommand{\sps}{\supseteq}		% Subset/Superset
\newcommand{\minus}{\setminus}	\newcommand{\sm}{\smallsetminus}	% Set Difference
\newcommand{\symdif}{\bigtriangleup}					% Symmetric Difference
\newcommand{\concat}{\,^\frown\,} 					% Concatenation
\newcommand{\continuum}{2^{\aleph_0}}	\newcommand{\Cantor}{{{}^\omega2}}	% Cantor Space and Continuum
\newcommand{\Baire}{{{}^\omega{\omega}}}					% Baire Space
\newcommand{\finseq}{{{}^{<\omega}\omega}}					% Set of finite sequences
\newcommand{\forces}{\Vdash}		\newcommand{\noforces}{\nVdash}	% Forces

%% Constants %%
\renewcommand{\phi}{\varphi}
\newcommand{\R}{\mathbb{R}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\N}{\mathbb{N}}


%% RT/Type Theory/Lambda-Calc %%
\newcommand{\Tred}{\leq_{T}}
\newcommand{\Teq}{\equiv_{T}}
\newcommand{\red}{\hspace{-.2em}\twoheadrightarrow\hspace{-.2em}}
\newcommand{\monus}{\mathop{\setbox0=\hbox{$-$}\rlap{\raise4pt\hbox to\wd 0{\hss.\hss}}\box0}} %Monus
	% WARNING: My monus doesn't work well
	% (except in regular sized math enviroments. No superscripts or subscripts)
\newcommand{\desop}{\textit{\riota}} % Description Operator (requires Phonetic package!)
\newcommand{\st}{{\text{\huge {.}}}} 				% Big Dot for Church's Dot Notation
\newcommand{\stt}{{\hspace*{2 pt} \text{\huge {.}} \hspace*{2 pt}}} 	%  Same as above but with more spacing
\newcommand{\lam}{\boldsymbol{\lambda}} % Boldfaced Lambda for Church Lambda Notation
%% Use: I tend to us \stt for long quantifiers, where no space looks a little cluttered
%% Example: \A x_0\in \R\ \stt \A \epsilon>0\stt \E \delta>0 \stt \A x\in\R \stt |x-x_0|<\delta\imp|x^2-x_0^2|<\epsilon
%% I use \st for lambda-notation, where spacing looks a little weird
%% Example: \lam x\st xy
%% Below is the Godel Number Corner quotes
\newbox\gnBoxA
\newdimen\gnCornerHgt
\setbox\gnBoxA=\hbox{$\ulcorner$}
\global\gnCornerHgt=\ht\gnBoxA
\newdimen\gnArgHgt
\def\Godelnum #1{%
	\setbox\gnBoxA=\hbox{$#1$}%
	\gnArgHgt=\ht\gnBoxA%
	\ifnum \gnArgHgt<\gnCornerHgt
		\gnArgHgt=0pt%
	\else
		\advance \gnArgHgt by -\gnCornerHgt%
	\fi
	\raise\gnArgHgt\hbox{$\ulcorner$} \box\gnBoxA %
		\raise\gnArgHgt\hbox{$\urcorner$}}



%% Random Math %%
%\usepackage{colonequals}
%\def\={\colonequals}			% This an above give a properly formatted :=
\def\<{\langle}            			\def\>{\rangle} 			% Angles
\newcommand{\ol}[1]{\overline{#1}}		\newcommand{\mbf}[1]{\mathbf{#1}}	% Overline. Bold face
\newcommand{\goth}[1]{\mathfrak{#1}}		\newcommand{\fancy}[1]{\mathscr{#1}}	% Gothic and Script
\newcommand{\restricted}{\upharpoonright}					% Restrict Domain
\newcommand{\opname}[1]{\operatorname{#1}}					% Operators
\newcommand{\unit}[1]{\ensuremath{\, \mathrm{#1}}}

%% ASL Ones
\def\game{\rotate[r]{\rotate[r]{$\mathsf{G}$}}}
\newcommand\dotminus{\mathop{\mbox{$-^{\hspace{-.5em}\cdot}\,\,$}}}
\newcommand\tboldsymbol[1]{%
\protect\raisebox{0pt}[0pt][0pt]{%
$\underset{\widetilde{}}{\boldsymbol{#1}}$}\mbox{\hskip 1pt}}

%% New Operators %%
\newcommand{\dom}{\operatorname{dom}}		% Domain
\newcommand{\im}{\operatorname{im}}		% Image
\newcommand{\sg}{\operatorname{sg}} 		% Signature function
\newcommand{\LS}{\operatorname{LS}} 		% Lowenheim Skolem Number Function
\newcommand{\Det}{\operatorname{Det}}		% Determinacy
\newcommand{\Con}{\operatorname{Con}}		% Consistency

%% Axioms %%
\newcommand{\ZF}{\mathrm{ZF}}
\newcommand{\ZFC}{\mathrm{ZFC}}
\newcommand{\DC}{\mathrm{DC}}
\newcommand{\AD}{\mathrm{AD}}
\newcommand{\AC}{\mathrm{AC}}

%% Claim QED %%
%% First below is a shaded box, next is a slashed box, part of St. Mary's Font package
%\def\subqed{{\unskip\nobreak\hfil\penalty50
%	\hskip1em\hbox{}\nobreak\hfil\raise2pt\hbox{\vrule height5pt width5pt depth0pt}
%	\parfillskip=0pt \finalhyphendemerits=0 \par}}
\def\subqed{{\unskip\nobreak\hfil\penalty50
	\hskip1em\hbox{}\nobreak\hfil\raise2pt\hbox{$\boxslash$}
	\parfillskip=0pt \finalhyphendemerits=0 \par}}
\def\contra{$\shortrightarrow\!\shortleftarrow$}		%Contradiction Symbol. Requires St. Mary's Font Package




%% Theorem Envs %%
\newtheorem{thm}{Theorem}
\newtheorem*{thm*}{Theorem}
\newtheorem{prop}{Proposition}
\newtheorem*{prop*}{Proposition}
\newtheorem{lem}{Lemma}
\newtheorem*{lem*}{Lemma}
\newtheorem{cor}{Corollary}
\newtheorem*{cor*}{Corollar}
%% Def Envs %%
\theoremstyle{definition}
\newtheorem{prob}{Problem}
\newtheorem*{prob*}{Problem}
\newtheorem{soln}{Solution}
\newtheorem*{soln*}{Solution}
\newtheorem{dfn}{Definition}
\newtheorem*{dfn*}{Definition}
\newtheorem{eg}{Example}
\newtheorem*{eg*}{Example}
\newtheorem{exc}{Exercise}
\newtheorem*{exc*}{Exercise}
\newtheorem*{notation}{Notation}
\newtheorem*{notation*}{Notation}
%% Rmk Envs %%
\theoremstyle{remark}
\newtheorem{rmk}{Remark}
\newtheorem*{rmk*}{Remark}
\newtheorem{fact}{Fact}
\newtheorem*{fact*}{Fact}



\usepackage{hyperref} % Hyperlink package, loaded last for a reason.



