\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{xalgebra}[2020/09/10 1.0.0 Usefull definitions for Algebra]

\RequirePackage{amssymb}  % For the double-struck capital letters
\RequirePackage{amsmath}  % For the \DeclareMathOperator
\RequirePackage{mathrsfs} % For \mathscr

% Generic stuff
\newcommand{\abs}[1]{\left|\nobreak#1\nobreak\right|} % Absolute values
\DeclareMathOperator{\Rad}{Rad}                       % Jacobson radical
\DeclareMathOperator{\rad}{rad}                       % Jacobson radical

% Linear Algebra stuff
\newenvironment{system}
  {\left \{ \begin{aligned}}
  {\end{aligned} \right.}         % Linear system of equations
\DeclareMathOperator{\Tr}{Tr}     % Operator trace
\DeclareMathOperator{\Id}{Id}     % Identity operator
\DeclareMathOperator{\Bil}{Bil}   % The space of bilinear maps
\DeclareMathOperator{\Mat}{Mat}   % Matrix algebra
\DeclareMathOperator{\Sym}{Sym}   % Symetric product of vector-spaces
\DeclareMathOperator{\Flag}{Flag} % The space of full flags of a vector space
\newcommand{\base}{\mathcal{B}}   % Vectorspace base
\renewcommand{\Re}{\mathrm{Re}\,} % Real component
\renewcommand{\Im}{\mathrm{Im}\,} % Imaginary component
\newcommand{\norm}[1]{\left\lVert\nobreak#1\nobreak\right\rVert} % Vector norm

% Group Theory stuff
\DeclareMathOperator{\Inn}{Inn}        % Inner automorphism group
\DeclareMathOperator{\Out}{Out}        % Outer automorphism group
\DeclareMathOperator{\sgn}{sgn}        % Permutation sign (parity)
\newcommand{\actson}{\circlearrowleft} % Group action indicator

% Ring Theory stuff
\DeclareMathOperator{\Frac}{Frac}  % Field of fractions
\DeclareMathOperator{\fchar}{char} % Field characteristic
\DeclareMathOperator{\Irr}{Irr}    % Minimal polynomial

% Galois Theory
\DeclareMathOperator{\Gal}{Gal}             % Galois group
\newcommand{\sepcloj}[1]{{#1}^\textsc{sep}} % Separable clojure of a Galois 
                                            % extension

% Module Theory
\newcommand{\Ind}[2]{\operatorname{Ind}_{#2}^{#1}}     % Induced module
\newcommand{\Coind}[2]{\operatorname{Coind}_{#2}^{#1}} % Coinduced module
\newcommand{\Res}[2]{\operatorname{Res}_{#2}^{#1}}     % Restriction of scalars
\DeclareMathOperator{\Ann}{Ann}                        % The annihilator of a
                                                       % module

% Homological algebra
\DeclareMathOperator{\Ext}{Ext} % Ext functor
\DeclareMathOperator{\Tor}{Tor} % Tor functor

\endinput

