\newcounter{stepno}
\newcounter{stepnoi}
\newcounter{stepnoii}
\newcounter{stepnoiii}
\newcounter{stepnoiv}

   \newlength{\nesti}
   \setlength{\nesti}{\textwidth}
   \addtolength{\nesti}{-1.5cm}

   \newlength{\nestii}
   \setlength{\nestii}{\nesti}
   \addtolength{\nestii}{-1.5cm}

   \newlength{\nestiii}
   \setlength{\nestiii}{\nestii}
   \addtolength{\nestiii}{-1.5cm}

   \newlength{\nestiv}
   \setlength{\nestiv}{\nestiii}
   \addtolength{\nestiv}{-1.5cm}

\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{claim}{Claim}[chapter]
\newtheorem{eqed}{Example}[chapter]
\newtheorem{lemma}{Lemma}[chapter]
\newtheorem{observation}[theorem]{Observation}
\newtheorem{remark}{Remark}[chapter]
\newtheorem{defn}{Definition}[chapter]
\newtheorem{corl}{Corollary}[chapter]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{convention}[theorem]{Convention}
\newtheorem{example}{Example}[chapter]
\newtheorem{exercise}{Exercise}[chapter]
\newtheorem{algo}{Algorithm}[chapter]
\newenvironment{proof}{{\it Proof:\ } }{\hfill$\Box$ }
\newenvironment{pfo}{{\it Proof outline:\ } }{\hfill$\Box$ }
\newenvironment*{principle}
    {\begin{list}{}{\setlength{\leftmargin}{5em}
                \setlength{\rightmargin}{0em}}\item[]}
    {\end{list}}
\newenvironment*{lfpe} % linear formal proof environment
        {\vspace{3mm}\begin{minipage}[c]{\textwidth}
                \begin{list}
                        {\arabic{stepno}.  }
                        {\usecounter{stepno}{\setcounter{stepno}{0}}}\item[]}
  {\end{list}\end{minipage}\vspace{3mm}}
 

\newenvironment*{nfpei} % nested-1 formal proof environment
  {\begin{minipage}[c]{\nesti}
        \begin{list}
                {\arabic{stepno}.\arabic{stepnoi}.  }
                {\usecounter{stepnoi}{\setcounter{stepnoi}{0}}}\item[]}
  {\end{list}\end{minipage}}

\newenvironment*{nfpeii} % nested-2 formal proof environment
  {\begin{minipage}[c]{\nestii}
        \begin{list}
                {\arabic{stepno}.\arabic{stepnoi}.\arabic{stepnoii}.  }
                {\usecounter{stepnoii}{\setcounter{stepnoii}{0}}}\item[]}
  {\end{list}\end{minipage}}

\newenvironment*{nfpeiii} % nested-3 formal proof environment
  {\begin{minipage}[c]{\nestiii}
        \begin{list}
        {\arabic{stepno}.\arabic{stepnoi}.\arabic{stepnoii}.\arabic{stepnoiii}.  }
        {\usecounter{stepnoiii}{\setcounter{stepnoiii}{0}}}\item[]}
  {\end{list}\end{minipage}}

\newenvironment*{nfpeiv} % nested-4 formal proof environment
  {\begin{list}
        {\arabic{stepno}.\arabic{stepnoi}.\arabic{stepnoii}.\arabic{stepnoiii}.\ar
abic{stepnoiv}.  }
        {\usecounter{stepnoiv}{\setcounter{stepnoiv}{0}}}\item[]}
  {\end{list}}
