Skip to content

Commit a934133

Browse files
committed
ieee template
1 parent 634129c commit a934133

2 files changed

Lines changed: 113 additions & 128 deletions

File tree

paper.tex

Lines changed: 102 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,16 @@
88
\def\paperversion{draft}
99
\fi
1010

11-
\documentclass[review, anonymous, acmsmall, acmtog, 10pt]{acmart}
11+
\documentclass[conference]{IEEEtran}
12+
\IEEEoverridecommandlockouts
1213

1314
\def\acmversionanonymous{anonymous}
1415
\def\acmversionjournal{journal}
1516
\def\acmversionnone{none}
1617

17-
\makeatletter
18-
\if@ACM@anonymous
19-
\def\acmversion{anonymous}
20-
\else
21-
\def\acmversion{journal}
22-
\fi
23-
\makeatother
18+
% IEEEtran has no built-in anonymous mode; drive it from \paperversion so the
19+
% conditional blocks below keep working.
20+
\def\acmversion{anonymous}
2421

2522
\usepackage{colortbl}
2623

@@ -44,6 +41,12 @@
4441
\usepackage{microtype}
4542
\usepackage{tcolorbox}
4643

44+
% geometry is only needed for the widened draft margins (see tex/setup.tex).
45+
% Loading it unconditionally would override IEEEtran's own page layout and
46+
% shrink the text block, so it is deliberately draft-only.
47+
\ifx\paperversion\paperversiondraft
48+
\usepackage{geometry}
49+
\fi
4750
\usepackage{xargs}
4851
\usepackage{lipsum}
4952
\usepackage{xparse}
@@ -53,14 +56,23 @@
5356
\usepackage{etoolbox}
5457
\usepackage[acronym,shortcuts]{glossaries}
5558
\usepackage{amsmath}
59+
\usepackage{amssymb} % \mathbb, \barwedge, \circledast; acmart loaded this
60+
% acmart loaded hyperref for us; IEEEtran does not. It must come before
61+
% thmtools, which otherwise defines a conflicting \autoref.
62+
\usepackage{hyperref}
63+
\usepackage{amsthm} % \theoremstyle/\newtheorem; acmart loaded this
5664
\usepackage{thmtools} % required for autoref to lemmas
5765
\usepackage{algorithm}
5866
\usepackage[noend]{algpseudocode}
5967
\usepackage{hyphenat}
6068
\usepackage[shortcuts]{extdash}
6169

6270
\input{tex/setup.tex}
63-
\input{tex/acm.tex}
71+
72+
% The paper uses \citet, so we need natbib. IEEEtranN is the natbib-compatible
73+
% IEEE bibliography style (plain IEEEtran.bst is not).
74+
\usepackage[numbers]{natbib}
75+
\bibliographystyle{IEEEtranN}
6476

6577
\usemintedstyle{colorful}
6678

@@ -124,12 +136,16 @@
124136
\newacronym{asic}{ASIC}{application-specific integrated circuits}
125137

126138
\newcommand{\sem}[1]{\llbracket #1 \rrbracket}
127-
\newcommand{\Circ}{\mathit{Circuit}}
128-
\newcommand{\Col}{\mathit{Column}}
129-
\newcommand{\Heap}{\mathit{BitHeap}}
130-
\newcommand{\Arith}{\mathit{Arith}}
131-
\newcommand{\Step}{\mathit{Step}}
132-
\newcommand{\Chain}{\mathit{Chain}}
139+
% Names of Lean datatypes. \ensuremath lets these be used in prose (\Circ) and
140+
% in math mode ($\Circ$) alike; \xspace supplies the following space in prose,
141+
% so no trailing {} is needed.
142+
\newcommand{\Circ}{\ensuremath{\texttt{Circuit}}\xspace}
143+
\newcommand{\Col}{\ensuremath{\texttt{Column}}\xspace}
144+
\newcommand{\Heap}{\ensuremath{\texttt{BitHeap}}\xspace}
145+
\newcommand{\Arith}{\ensuremath{\texttt{Arith}}\xspace}
146+
\newcommand{\Step}{\ensuremath{\texttt{Step}}\xspace}
147+
\newcommand{\Chain}{\ensuremath{\texttt{Chain}}\xspace}
148+
\newcommand{\Vect}{\ensuremath{\texttt{Vector}}\xspace}
133149
\newcommand{\var}{\mathsf{var}}
134150
\newcommand{\HA}{\mathsf{HA}}
135151
\newcommand{\FA}{\mathsf{FA}}
@@ -187,19 +203,37 @@
187203

188204
% listings don't write "Listing" in autoref without this.
189205
\providecommand*{\listingautorefname}{Listing}
206+
\providecommand*{\sectionautorefname}{Section}
207+
\providecommand*{\subsectionautorefname}{Section}
208+
\providecommand*{\subsubsectionautorefname}{Section}
190209
\renewcommand{\sectionautorefname}{Section}
191210
\renewcommand{\subsectionautorefname}{Section}
192211
\renewcommand{\subsubsectionautorefname}{Section}
193212
\usepackage{stmaryrd}
194213
\newcommand{\bit}[2]{\llbracket #1 \rrbracket_{#2}}
195214

215+
% acmart predefined these; IEEEtran does not.
216+
\theoremstyle{plain}
217+
\newtheorem{theorem}{Theorem}
218+
\newtheorem{lemma}[theorem]{Lemma}
219+
\newtheorem{corollary}[theorem]{Corollary}
220+
\theoremstyle{definition}
221+
\newtheorem{definition}[theorem]{Definition}
222+
\providecommand*{\theoremautorefname}{Theorem}
223+
\providecommand*{\definitionautorefname}{Definition}
224+
\providecommand*{\lemmaautorefname}{Lemma}
225+
226+
% acmart provided these; IEEEtran does not.
227+
\providecommand{\keywords}[1]{\par\noindent\textbf{Keywords:} #1}
228+
\providecommand{\ccsdesc}[2][]{}
229+
\providecommand{\settopmatter}[1]{}
230+
\providecommand{\received}[2][]{}
231+
196232

197233
\begin{document}
198234

199235
%% Title information
200-
\title[Short Title]{Datapath Verification in Lean 4} %% [Short Title] is optional;
201-
%% when present, will be used in
202-
%% header instead of Full Title.
236+
\title{Datapath Verification in Lean 4}
203237

204238
%% Author information
205239
%% Contents and number of authors suppressed with 'anonymous'.
@@ -210,48 +244,30 @@
210244
%% appropriate command.
211245
%% Many elements are not rendered, but should be provided for metadata
212246
%% extraction tools.
213-
\author{First1 Last1}
214-
\authornote{with author1 note} %% \authornote is optional;
215-
%% can be repeated if necessary
216-
\orcid{nnnn-nnnn-nnnn-nnnn} %% \orcid is optional
217-
\affiliation{
218-
\position{Position1}
219-
\department{Department1} %% \department is recommended
220-
\institution{Institution1} %% \institution is required
221-
\streetaddress{Street1 Address1}
222-
\city{City1}
223-
\state{State1}
224-
\postcode{Post-Code1}
225-
\country{Country1}
226-
}
227-
\email{first1.last1@inst1.edu} %% \email is recommended
228-
229-
\author{First2 Last2}
230-
\authornote{with author2 note} %% \authornote is optional;
231-
%% can be repeated if necessary
232-
\orcid{nnnn-nnnn-nnnn-nnnn} %% \orcid is optional
233-
\affiliation{
234-
\position{Position2a}
235-
\department{Department2a} %% \department is recommended
236-
\institution{Institution2a} %% \institution is required
237-
\streetaddress{Street2a Address2a}
238-
\city{City2a}
239-
\state{State2a}
240-
\postcode{Post-Code2a}
241-
\country{Country2a}
242-
}
243-
\email{first2.last2@inst2a.com} %% \email is recommended
244-
\affiliation{
245-
\position{Position2b}
246-
\department{Department2b} %% \department is recommended
247-
\institution{Institution2b} %% \institution is required
248-
\streetaddress{Street3b Address2b}
249-
\city{City2b}
250-
\state{State2b}
251-
\postcode{Post-Code2b}
252-
\country{Country2b}
247+
%% Author information (IEEEtran format).
248+
%% Anonymized for review; restore the real block for camera-ready.
249+
\ifx\acmversion\acmversionanonymous
250+
\author{\IEEEauthorblockN{Anonymous Author(s)}}
251+
\else
252+
\author{%
253+
\IEEEauthorblockN{First1 Last1}
254+
\IEEEauthorblockA{%
255+
\textit{Department1} \\
256+
\textit{Institution1} \\
257+
City1, Country1 \\
258+
first1.last1@inst1.edu}
259+
\and
260+
\IEEEauthorblockN{First2 Last2}
261+
\IEEEauthorblockA{%
262+
\textit{Department2a} \\
263+
\textit{Institution2a} \\
264+
City2a, Country2a \\
265+
first2.last2@inst2a.com}
253266
}
254-
\email{first2.last2@inst2b.org} %% \email is recommended
267+
\fi
268+
269+
%% IEEEtran requires \maketitle before the abstract (acmart wanted it after).
270+
\maketitle
255271

256272
\begin{abstract}
257273
% An abstract should consist of six main sentences:
@@ -266,44 +282,11 @@
266282

267283
\end{abstract}
268284

269-
% Only add ACM notes and keywords in camera ready version
270-
% Drop citations and footnotes in draft and blind mode.
271-
\ifx\acmversion\acmversionanonymous
272-
\settopmatter{printacmref=false} % Removes citation information below abstract
273-
\renewcommand\footnotetextcopyrightpermission[1]{} % removes footnote with conference information in first column
274-
\fi
275-
\ifx\acmversion\acmversionjournal
276-
%% 2012 ACM Computing Classification System (CSS) concepts
277-
%% Generate at 'http://dl.acm.org/ccs/ccs.cfm'.
278-
\begin{CCSXML}
279-
<ccs2012>
280-
<concept>
281-
<concept_id>10011007.10011006.10011008</concept_id>
282-
<concept_desc>Software and its engineering~General programming languages</concept_desc>
283-
<concept_significance>500</concept_significance>
284-
</concept>
285-
<concept>
286-
<concept_id>10003456.10003457.10003521.10003525</concept_id>
287-
<concept_desc>Social and professional topics~History of programming languages</concept_desc>
288-
<concept_significance>300</concept_significance>
289-
</concept>
290-
</ccs2012>
291-
\end{CCSXML}
292-
293-
\ccsdesc[500]{Software and its engineering~General programming languages}
294-
\ccsdesc[300]{Social and professional topics~History of programming languages}
295-
%% End of generated code
296-
297-
%% Keywords
298-
%% comma separated list
299-
\keywords{keyword1, keyword2, keyword3}
300-
\fi
301-
302-
%% \maketitle
303-
%% Note: \maketitle command must come after title commands, author
304-
%% commands, abstract environment, Computing Classification System
305-
%% environment and commands, and keywords command.
306-
\maketitle
285+
%% IEEE keywords. The ACM CCS concept block has no IEEE equivalent and was
286+
%% dropped; IEEE venues use index terms instead.
287+
\begin{IEEEkeywords}
288+
keyword1, keyword2, keyword3
289+
\end{IEEEkeywords}
307290

308291
\section{Introduction}
309292
Datapath circuits are a fundamental component of digital systems, responsible from moving and processing data.
@@ -406,21 +389,19 @@ \subsubsection{Dadda's Algorithm}
406389
\end{tcolorbox}
407390

408391
\section{Formalization}
409-
In this section, we present the formalization of the bit heap data structure as well as the underlying hardware-level constructs and compression algorithms in Lean 4.
392+
In this section, we present the formalization of the bit heap data structure in Lean 4 and prove the correctness of existing compression algorithms.
410393
We also discuss the correctness of the composition of adders and how we relate bit heaps to bit-vector arithmetic.
411-
\sam{I'd be more concise here - "In this section, we present the formalization of the bit heap data structure in Lean 4 and prove the correctness of existing compression algorithms."}
412394
\sam{I'd also add a short statement that because we're formalizing in Lean the reader will find that we're turning to recursive definitions a lot - as this allows for simpler proofs.}
413395

414-
415-
\subsection{Circuit}
416-
The building block of the bit heap data structure is a single bit.
417-
In our formalization, the Circuit data structure represent a boolean expression, that is named by a natural-number index.
396+
\subsection{\Circ}
397+
The building block of the bit heap data structure is a single bit.
398+
In our formalization, the \Circ data structure represent a boolean expression, that is named by a natural-number index.
418399
\sam{Circuit is not a data structure, it is a language. Also you've got inconsistent presentation of Circuit (vs \texttt{Circuit}) - consistency is essential so I'd suggest creating a macro.}
419400

420-
A \texttt{Circuit} describes a logical expression, that can be a binary variable, constant, or any binary operation over composition Circuit objects.
421-
The bits represented by \texttt{Circuit} are symbolic and do not hold any value.
422-
A Circuit is assigned a value under a bit environment $\sigma$,
423-
which maps the \texttt{Circuit} to Boolean values.
401+
A \Circ describes a logical expression, that can be a binary variable, constant, or any binary operation over composition \Circ objects.
402+
The bits represented by \Circ are symbolic and do not hold any value.
403+
A \Circ is assigned a value under a bit environment $\sigma$,
404+
which maps the \Circ to Boolean values.
424405
\sam{The bit environment maps a symbolic bit to a boolean value - not an arbitrary \texttt{Circuit}. The mapping of higher-level expressions is handled by your semantics.}
425406

426407
\[
@@ -456,8 +437,7 @@ \subsection{Circuit}
456437
\sam{Currently this just looks like a semantics of Boolean arithmetic - so it may not be necessary to spell it out so much.}
457438
\subsection{Bit Heap Data Structure}
458439
A bit heap of width $w$ is a vector of $w$ columns, where the column at index $k$ holds the bits of weight $2^k$.
459-
A \texttt{Column} is a set of \texttt{Circuit} elements.
460-
\sam{Inconsistent formatting of column.}
440+
A \Col is a set of \Circ elements.
461441
\[
462442
\begin{array}{r@{\;}c@{\;}l@{\qquad}l}
463443
\Col \ni \gamma &::=& \{c_0,\dots,c_n\} \\[2pt]
@@ -471,7 +451,7 @@ \subsection{Bit Heap Data Structure}
471451
A \emph{column} is a set of circuits,
472452
and a \emph{bit heap of width $w$} is a vector of $w$ columns,
473453
\[
474-
\mathtt{BitHeap}\;w \;\triangleq\; \mathtt{Vector}\;\mathtt{Column}\;w
454+
\Heap\;w \;\triangleq\; \Vect\;\Col\;w
475455
\]
476456
\end{definition}
477457
\sam{You seem to give two definitions and they are not consistent - one shows a Vector the other looks like a set?}
@@ -566,8 +546,8 @@ \subsection{Bit Heap Data Structure}
566546
\]
567547
\end{theorem}
568548

569-
Since a \texttt{Column} is defined as a set, it cannot contain duplicates.
570-
Therefore, if the same bit is added to a \texttt{Column} at index k, we propagete the bit to the next column, since $2^{k}c + 2^{k}c = 2^{k+1}c$, and the propagation repeats if the next column already contains the circuit as well.
549+
Since a \Col is defined as a set, it cannot contain duplicates.
550+
Therefore, if the same bit is added to a \Col at index k, we propagete the bit to the next column, since $2^{k}c + 2^{k}c = 2^{k+1}c$, and the propagation repeats if the next column already contains the circuit as well.
571551
\sam{To distinguish between what is done automatically namely the bit propagation try to avoid saying "we" - this makes it sound like a manual process. Instead say "the bit is automatically propagted to the next column".}
572552
Effectively the bit heap is optimized during its construction.
573553
\autoref{thm:addBit} is proved by functional induction on \texttt{addBit}, following the carry propagation described above.
@@ -667,22 +647,17 @@ \section{Related Work}
667647
Integrated into an existing HLS tool, Graphiti provides a verified rewriting engine that ensures the composition of verified rewrites refines the original behaviour.
668648
\section{Conclusion}
669649

670-
%% Acknowledgments
671-
\begin{acks} %% acks environment is optional
672-
%% contents suppressed with 'anonymous'
673-
%% Commands \grantsponsor{<sponsorID>}{<name>}{<url>} and
674-
%% \grantnum[<url>]{<sponsorID>}{<number>} should be used to
675-
%% acknowledge financial support and will be used by metadata
676-
%% extraction tools.
677-
This material is based upon work supported by the
678-
\grantsponsor{GS100000001}{National Science
679-
Foundation}{http://dx.doi.org/10.13039/100000001} under Grant
680-
No.~\grantnum{GS100000001}{nnnnnnn} and Grant
681-
No.~\grantnum{GS100000001}{mmmmmmm}. Any opinions, findings, and
682-
conclusions or recommendations expressed in this material are those
683-
of the author and do not necessarily reflect the views of the
650+
%% Acknowledgments. IEEEtran has no \begin{acks} or \grantsponsor/\grantnum;
651+
%% IEEE uses an unnumbered section. Suppressed for anonymous review.
652+
\ifx\acmversion\acmversionanonymous
653+
\else
654+
\section*{Acknowledgments}
655+
This material is based upon work supported by the National Science
656+
Foundation under Grant No.~nnnnnnn and Grant No.~mmmmmmm. Any opinions,
657+
findings, and conclusions or recommendations expressed in this material are
658+
those of the author and do not necessarily reflect the views of the
684659
National Science Foundation.
685-
\end{acks}
660+
\fi
686661

687662
%% Bibliography
688663
\bibliography{references}

tex/setup.tex

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,25 @@
55
\makeatletter
66
\patchcmd{\@addmarginpar}{\ifodd\c@page}{\ifodd\c@page\@tempcnta\m@ne}{}{}
77
\makeatother
8+
% Was \if@ACM@journal (acmart internal), which IEEEtran does not define.
9+
% \ifdraftmargins selects the widened-margin layout for review comments.
10+
% Declared outside the conditional below: TeX must see the \newif even on
11+
% branches that skip it, or the \if/\fi nesting breaks.
12+
\newif\ifdraftmargins
13+
\draftmarginstrue
14+
815
\ifx\paperversion\paperversiondraft
916
\makeatletter
10-
\if@ACM@journal
17+
\ifdraftmargins
1118
\geometry{asymmetric}
1219
\paperwidth=\dimexpr \paperwidth + 3.5cm\relax
1320
\oddsidemargin=\dimexpr\oddsidemargin + 0cm\relax
1421
\evensidemargin=\dimexpr\evensidemargin + 0cm\relax
1522
\marginparwidth=\dimexpr \marginparwidth + 3cm\relax
1623
\setlength{\marginparwidth}{4.6cm}
24+
% acmart set \textheight itself; IEEEtran sizes it for the un-widened
25+
% page, which otherwise leaves the bottom third of each page empty.
26+
\setlength{\textheight}{\dimexpr\paperheight - 2in\relax}
1727
% This makeatletter box helps to move notes to the right
1828
\makeatletter
1929
\long\def\@mn@@@marginnote[#1]#2[#3]{%

0 commit comments

Comments
 (0)