Begriffsschrift in LaTeX
I have installed my LaTeX style file for writing in GottlobFrege's Begriffsschrift on this system. That means that you can use it from in conjunction with the MathModePlugin.
The style file defines eight new LaTeX math mode commands:
- BGassert - generates an assertion sign
- BGcontent - generates a content stroke
- BGnot - generates a negation sign
- BGquant{v} - generates a universal quantifier with variable v
- BGconditional{a}{c} - generates a conditional with antecendent a and consequent c. Note that in the Begriffsschrift, the antecendent is placed below the consequent.
(The following three command were introduced in version 1.5)
- BGterm{x} - creates a right-justified terminal node x
- BGstem{x} - inserts arbitrary LaTeX maths x into a non-terminal node
- BGbracket{x} - places the expression x inside brackets of the right size
The operation of BGterm and BGstem is not self-explanatory. However, their only function is to control Alignment, and if you don't need that you can ignore them.
You also have the normal resources of LaTeX math mode with AMS symbols at your disposal; so, you can use mathfrak{v} to get a fraktur character, acute{v} to get a character with a slanting hat, and alpha (etc.) to get greek letters.
The BGbracket command is not perfectly reliable.
The style file is hereby placed under the GNU General Public License.
For reasons of readability it's often desirable to have the terminal nodes of a begriffsschrift diagram aligned along the right margin of the diagram, with the extra space needed taken up by extending the strokes that lead to them. This can be done by enclosing every terminal node in a BGterm{...} command. BGterm draws a horizontal stroke of just the right length so that its argument will be typeset against the right margin.
Another advantage of typesetting begriffsschrift in this way is that successive diagrams can be ensured to be the same width. The width of a diagram is controlled by the BGlinewidth length.
There is one little complication. Typical begriffsschrift sentences contain pieces of ordinary LaTeX maths only as terminal nodes. If you need to typeset ordinary maths outside of a terminal node, and are using alignment, you need to wrap it up in a BGstem{...} command, so that LaTeX can keep track of where the right margin is correctly. BGstem has no visible effects.
This should be a lot clearer if you look at the examples below.
The examples below assume you are using TWiki MathModePlugin; to use them in LaTeX, remove the percent signs.
You type:
%$\BGassert\BGconditional{p}{q}$%
You get:
You type:
%$\BGassert (\acute{\epsilon}f(\epsilon) = \acute{\alpha}g(\alpha)) = \BGquant{\mathfrak{a}} \BGconditional{\BGnot \BGconditional{\BGnot \mathfrak{a} = \acute{\alpha}g(\alpha)}{\mathfrak{a} = \acute{\epsilon}f(\epsilon)}}{f(\mathfrak{a}) = g(\mathfrak{a})}$%
You get:
Same as the above, with alignment. You type:
%$\setlength{\BGlinewidth}{3in}\BGassert \BGstem{(\acute{\epsilon}f(\epsilon) = \acute{\alpha}g(\alpha)) =} \BGquant{\mathfrak{a}} \BGconditional{\BGnot \BGconditional{\BGnot \BGterm{\mathfrak{a} = \acute{\alpha}g(\alpha)}} {\BGterm{\mathfrak{a} = \acute{\epsilon}f(\epsilon)}}}{\BGterm{f(\mathfrak{a}) = g(\mathfrak{a})}}$%
You get:
This is MarcusRossberg's rendering of the GeachKaplanSentence. It is a relatively complicated formula, and uses the Alignment feature discussed above.
You can also tweak the appearance of the resulting material by modifying the values of the following lengths:
- BGthickness - the thickness of lines (by default 0.4pt, bigger numbers = bolder)
- BGbeforelen - the length of line inserted before a begriffsschrift symbol
- BGafterlen - the length of line inserted after a begriffsschrift symbol
- BGspace - the length of space inserted between begriffscript and normal maths
(and in version 1.5 or later)
- BGlinewidth - the total width of the diagram (for Alignment)
For example:
You type:
%$\setlength{\BGthickness}{1pt}\BGassert\BGconditional{p}{q}$%
You get:
- 1.1 (18-Apr-2003) First release
- 1.2 (20-Apr-2003) Tidy-ups and comments for CTAN
- 1.3 (23-Apr-2003) Added content stroke, fixed problems with holes in negation signs
- 1.4 (30-Apr-2003) Again fixed problems with holes in negations and conditionals
- 1.5 (15-Nov-2003) Alignment and variable-sized brackets
- 1.6 (20-May-2005) Changes by Richard Heck to make the format of the formulae closer to how they are set in Frege's published works and some minor change by Josh to fix a problem with the linespacing.
- Mike Ess's postscript typesetter / translator from FOL to Begriffsschrift
-- JoshParsons - 18 Apr 2003
Nothing clever here, but if you've got a document with Josh's Begriffsschrift typesetting, and want to convert every formula back into arrow/inverted-A/tilde type notation, you can just add the following to the preamble:
\renewcommand{\BGnot}{\neg}
\renewcommand{\BGconditional}[2]{(#1\rightarrow#2)}
\renewcommand{\BGquant}[1]{\forall #1}
\renewcommand{\BGassert}{\vdash}
\renewcommand{\BGcontent}[1]{v(#1)}
Issues about the ContentStroke
Also see BasicLaws for a formulation of Frege's axioms.
- RobertWilliams - 22 Apr 2003
Philip and I translated Theorems 71 from FregeBegriffsschrift (p. 59) into Modern Notation. It is obvious how much easier it is to read the peano-esque notation...
Frege's Notation:
Modern Notation:
-- MarcusRossberg - 05 May 2003
However, look at the LaTeX file of Frege's formalism:
\BGassert\BGconditional{\BGconditional{\BGquant{\mathfrak{a}}\BGconditional{f(x, \mathfrak{a})}{F(\mathfrak{a})}}{\BGconditional{f(x,y)}{F(y)}}}{\BGconditional{\BGquant{\mathfrak{b}}\BGconditional{F(\mathfrak{b})}{\BGquant{\mathfrak{a}}\BGconditional{f(\mathfrak{b, a})}{F(\mathfrak{a})}}}{\BGconditional{F(x)}{\BGconditional{f(x,y)}{F(y)}}}}
and the much easier modern version:
[\forall{a}(f(x,a) \supset F(a)) \supset (f(x,y) \supset F(y))] $\supset [\forall{b}[F(b) \supset \forall{a}(f(b,a) \supset F(a))]$\supset [F(x) \supset (f(x,y) \supset F(y))]]
-- PhilipAEbert - 05 May 2003
|
Revision r1.25 - 30 Mar 2009 - 22:10 - MarcusRossberg
|
Copyright © 1999-2003 by the contributing authors.
|
| Main.BegriffsschriftLaTeX moved from Main.BegriffsscriftLaTeX on 18 Apr 2003 - 15:44 by JoshParsons - put it back |