+\newcommand*\ma@thehead[3]{\ObjIncNode\textbf{#1 \ObjNode(\ma@settarget{#2}{#3})}\neverindent\par}
+\newcommand*\ma@theneck[1]{\textsl{#1}\neverindent\par}
+
+\newenvironment{axiom}[2]{\ma@thehead{Axiom}{#1}{#2}$}{$\par}
+\newenvironment{declaration}[2]{\ma@thehead{Declaration}{#1}{#2}$}{$\par}
+\newenvironment{definition}[2]{$}{$\par}
+\newenvironment{proposition}[2]{\ma@thehead{Proposition}{#1}{#2}$}{$\par}
+\newenvironment{proof}[2]{\ma@theneck{Proof}}{\par}
+\newenvironment{ma@step}[1]{\color{#1}}{\par}
+
+\newcommand*\ma@tmp{}
+\newcommand*\ma@last[4]{#4}
+\newcommand*\ma@list[5]{\def\ma@tmp{#5}%
+ \ifx\ma@tmp\empty\let\ma@tmp=\ma@last\else #1#2{#5}\let\ma@tmp=\ma@list\fi
+ \ma@tmp{#3}{#2}{#3}{#4}%
+}
+\newcommand*\ma@thop[1]{\mathpunct{#1}\allowbreak}
+\newcommand*\ma@cm{\ma@thop{,}}
+\newcommand*\ma@or{\mathbin\vert}
+\newcommand*\ma@cp{)\allowbreak}
+\newcommand*\ma@qm{\mathord{?}}