@Section
@Title { Theorems, lemmas, corollaries, definitions, propositions,
examples, and claims }
@RunningTitle { Theorems, lemmas, etc. }
@Tag { theorems }
@Begin
@PP
theorem. @Index @Code "@Theorem"
A theorem is created like this:
@ID @OneRow @Code {
"@LD @Theorem"
" @Title { Fermat's Last Theorem }"
"{"
"@Eq { a sup n + b sup n != c sup n } for all positive integers @Eq { a },"
"@Eq { b }, @Eq { c } and @Eq { n } when @Eq { n > 2 }."
"@LP"
"@Proof I have a proof of this theorem, but the margin"
"is too small to contain it. @EndProof"
"}"
}
where we have used the @Code "@LD" `left display' symbol from
Section {@NumberOf displays} to get a left-justified display,
and the @Code "@Eq" symbol from Chapter {@NumberOf equations}
for the equations. The result is
@ID @Theorem
@Title { Fermat's Last Theorem }
{
@Eq { a sup n + b sup n != c sup n } for all positive integers @Eq { a },
@Eq { b }, @Eq { c } and @Eq { n } when @Eq { n > 2 }.
@LP
@Proof I have a proof of this theorem, but the margin
is too small to contain it. @EndProof
}
The @Code "@Theorem" symbol produces an object with no adjacent
vertical space, hence it needs to be used in conjuction with
display or paragraph symbols. The theorem is numbered automatically,
with the title and number inserted at the start of the first
paragraph. @Code "@Title" may be omitted.
@PP
@Code "@Proof" produces @Proof @Null
proof. @Index @Code "@Proof"
with the appropriate following space, and @Code "@EndProof" produces
endproof. @Index @Code "@EndProof"
a box at the end of the line. They may be used anywhere, not
just within theorems.
@FootNote { Occasionally @Code "@EndProof" does not
appear as far to the right as it should. This problem can be fixed by using
{@Code "@LD @HExpand @Theorem"}, which instructs Lout to make sure
that as much horizontal space as possible is allocated to the theorem. }
@PP
There are seven symbols that produce independently numbered sequences
in this way. They are {@Code "@Theorem"}, {@Code "@Definition"},
definition. @Index @Code "@Definition"
claim. @Index @Code "@Claim"
proposition. @Index @Code "@Proposition"
lemma. @Index @Code "@Lemma"
corollary. @Index @Code "@Corollary"
example. @Index @Code "@Example"
{@Code "@Claim"}, {@Code "@Proposition"}, {@Code "@Lemma"},
{@Code "@Corollary"}, and {@Code "@Example"}.
@PP
The setup file contains options which determine whether the theorem
numbers include a chapter number ({@Code "@ChapterNumInTheorems"}),
or a section number ({@Code "@SectionNumInTheorems"}), and so on. A
section number automatically includes a chapter number, etc. There
are also options to change the word printed. For example, if you
need a sequence of conjectures, change the @Code "@ClaimWord" setup
file option to
@ID @Code "@ClaimWord { Conjecture }"
and use the @Code "@Claim" symbol for your conjectures. You can even put
@ID @Code {
"import @DocumentSetup"
"macro @Conjecture { @Claim }"
}
into your @Code mydefs file (Section {@NumberOf definitions}) if you wish,
so that you can write @Code "@Conjecture" in your documents instead of
{@Code "@Claim"}.
@PP
The setup file also contains two options which control the format of
the theorem (claims and so on have corresponding options). Here they
are with their default values:
@ID @Code {
"@TheoremTitleFormat { (title) }"
"@TheoremFormat { { @B { word @NumSep number title: } &2s } @Insert body }"
}
The first option is used only when a @Code "@Title" is given to the
theorem, and it determines how the title is formatted: the @Code title
symbol within the option stands for the @Code "@Title" option. The default
value shown places parentheses around the title. The second option
determines the format of the entire theorem. Within it, @Code word
stands for the value of {@Code "@TheoremWord"};
@Code "number" is the number of the theorem; @Code "title" is the title
of the theorem after formatting by {@Code "@TheoremFormat"} (if there
is a title; otherwise @Code title is {@Code "@Null"}, which prints as
nothing and even deletes the preceding space as required); and
@Code body is the body of the theorem. The default value prints the
word, number and title with a colon in bold, and inserts them and two
spaces into the first paragraph of the body; another value might be
@ID @Code { "@TheoremFormat { @B { word @NumSep number title } @LP body }" }
which places the header in bold on a line by itself, separated from the
body by a paragraph break. For @Code "@NumSep" see page {@PageOf numsep}.
@PP
Owing to problems behind the scenes, the @Code "@Theorem" symbol and its
companions have a potential efficiency problem: although all numbers are
finalized on the second run, it takes Lout time proportional to the square
of the highest theorem number to do this. So large numbers of theorems
numbered together might be slow.
@End @Section