GFnotation
GFnotation
A.
The package has two input formats, the so-called “symbolic representation” and the “short form.” The
short form outputs the formulas either in the style of Frege’s Begriffsschrift or in the style that is used in
his Grundgesetze. The above formulas are in the style of the Begriffsschrift ; here is the first one in the style
of the Grundgesetze: A .
a f (a)
⌣
Note: This users guide shows how to work with the package. It does not explain the constructions and
symbols in Frege’s notation.
A
Condition stroke: . Definition: A = B.
1
f ) Inferences (Grundgesetze). For inferences eight types are used:
Single line: . Double lines: .
Dashed line: . Dashed double lines: .
Single/double line: . Dot/dashed line: · · .
Contraposition: . Quantification: | }.
Separator : • .
g) Special symbols (Grundgesetze). Several special characters appear in the Grundgesetze:
.
⌢
symbols: f 0\ 1\ ⌣⌣
unary operators: \ α’ I i _
´ ` ´ ∗ ð γ γp U
f
⌣
n last two from the fge fonts: U ”
binary operators: ⌢ ;−
a −̀ \ −
a l rotated : ß F c֒ e֒ ȳ
2
4. Shortcuts for letters
The characters that Frege used (except the roman letters) are coded with two letter shortcuts. The first
letter indicates how the second letter is output. Uppercase Greek letters are introduced by ‘g’, lowercase
Greek letters by ‘k’, and the Fraktur letters by ‘d’: $\gA$ outputs A, $\ka$ outputs α, and $\da$ outputs a.
Here is the list of the uppercase Greek letters; the coding follows [6].
$\gA$: A $\gB$: B $\gG$: Γ $\gD$: ∆ $\gE$: E
$\gZ$: Z $\gH$: H $\gJ$: Θ $\gI$: I $\gK$: K
$\gL$: Λ $\gM$: M $\gN$: N $\gX$: Ξ $\gO$: O
$\gP$: Π $\gR$: P $\gS$: Σ $\gT$: T $\gU$: Υ
$\gF$: Φ $\gQ$: X $\gY$: Ψ $\gW$: Ω
For the Fraktur letters only a subset of the alphabets is provided; these are the letters that appear in
the Begriffsschrift or in part 1 of Vol. 1 of the Grundgesetze:
$\da$: a $\dc$: c $\dd$: d $\de$: e $\df$: f
$\dg$: g $\dm$: m $\dn$: n $\ddo$: o $\ddp$: p
$\dq$: q $\dr$: r $\dt$: t $\du$: u $\dF$: F
Note: Commands like \dp or \do shouldn’t change their plain TEX meaning. Therefore the commands
for the letters ‘o’ and ‘p’ are build with two ‘d’s.
You can add more letters using a simple \def. For example, to add s declare \def\ds{{\frak s}}.
3
/ ( ) affirmation with indicators moved to the right;
] ( ) is a vertical line placed right, that is, only the judgment stroke is printed.
For the generality a letter must be given. Therefore the parentheses contain the sequence \*#a. (\*@a"
for @). Instead of the letter ‘a’ any other letter can be used that is available in the Fraktur font (see Section 4).
A triple for the generality must be started with one of the following symbols .,‘;@. If it is not the @ then
the symbol after the letter must be one of .,‘; .
a
. (⌣ ) is a short vertical line;
a
, ( ⌣ ) is a short vertical line with a centered negation indicator;
a
‘ (⌣ ) represents negation but the indicator is moved to the left;
a
; (⌣ ) is a short vertical line with affirmation;
a
@ ( ⌣ ) signals (without any output) that a letter for the generality follows.
Note: The letter ‘ß’ is special. It uses the content of the token register \dsz. For example, with
ξ
the default \dsz={\xi} \*.ß. outputs ⌣ . Of course, ß must be a letter so for plain TEX the command
\catcode‘\ß=11 must be entered before \input GFnotation is done.
The last list contains symbols that are used by the short form. The symbols do not try to have a
mnemonic representation for their output. Most of these symbols can “change” and stand for one of two
symbols from the above lists.
0 negation either moved to the left or the right: 0=()
1 affirmation: 1=^/
2 again affirmation: 2=^+
4 not required content strokes: 4=-"
5 not required empty space: 5=_"
6 judgment strokes: 6=[]
7 negated generality: 7=‘,
8 again negation: 8=<~
9 represents a content stroke that has only one third of its usual length;
* is a skip whose length is multiplied by 5/3 to get back into alignment after a 9;
$ is used only with a generality and represents either a short content stroke or an empty space.
4
Example 2. This is the implementation of the inference in Section 1, that is
A
B
B
A :
\nlp4\*_[-\*-:-\ce{$\gA$}
\nlp4\*___\*_’-\ce{$\gB$}
\nlp4\*_[-\*---\ce{$\gB$}
\nlp4\*---\*---\*---
\nlp4\*_[-\*---\ce{$\gA$} .
\nlp4\ci{\hss\thinspace58\hss}\rep3\*___\*_[-\*-:-\*---\*-:-\ce{$f(b)$}
\nlpc4{$f(A)$}\*_|_\*-:-\ci{$f(A)$}\rep2\*___\*_!_\*___\*_’-\ce{$g(b)$}
\nlp4\*_|_\*_’-\ci{$g(A)$}\rep2\*___\*_’-\*.a.\*-:-\ce{$f(\da)$}
\nlpc4{$c$}\*_|_\ci{$b$} \rep3\*___\*___\*___\*_’-\ce{$g(\da)$}
\bcc4/m30:.\rep3\*___\null \rep6\*---\ecc
\nlpc4{$a$}\*_|_\ci{$f(b)$} \rep2\*___\*_[-\*-:-\*-:-\*,a.\*-:-\ce{$f(\da)$}
\nlpc4{$c$}\*_|_\ci{$g(b)$} \rep2\*___\*___\*_!_\*_!_\*___\*_’-\ce{$g(\da)$}
\nlpc4{$b$}\*_|_\*.a.\*-:-\ci{$f(\da)$} \*___\*_!_\*_’-\*---\*--(\ce{$f(b)$}
\nlp4\*_|_\*___\*_’-\ci{$g(\da)$} \*___\*_’-\*---\*---\*---\ce{$g(b)$}
\fono{59}
outputs formula 59 of the Begriffsschrift:
58 f (b)
f (A) f (A) g(b)
a
g(A) ⌣ f (a)
c b g(a)
(30) :
a
a f (b) ⌣ f (a)
c g(b) g(a)
a
b ⌣ f (a) f (b)
g(a) g(b) (59.
5
Example 4. Here are some inferences of the Begriffsschrift :
1 a
b
a
(8) :
d a a
a
b (26.
26 a
b a a
b a
a b
a
(1) : :
a
a (27.
The command \decollator4 appears after formula 26.
6
Example 5. Here are a few examples for all four rules:
i) \frege|{=-\gA} outputs A.
ii) \frege.{-.\gA-{{g(\ka,\kb)}}} outputs A .
g(α, β)
a
iii) \frege.{*-a+{f(\da)}} outputs ⌣ f (a).
iv) \def\0#1{*.a.{#1(\da)}} together with \frege|{-.\gA-{!\0f}} outputs
A .
a
⌣ f (a)
The output of iv) is nearly the formula of Section 1 ( A ); it can be
a
⌣ f (a)
coded (without \0) as \frege|{..\gA.{*.a.{f(\da)}}}.
Of course, a formula in Frege’s notation that has several lines is not easy to read in a sequential form.
The periods and braces do not help to make the structure of that formula easy to recognize. I suggest to copy
a Frege formula from left to right and from bottom to top and to use more than one line for the sequential
coding.
7
8. Inferences of the Begriffsschrift in the “short form”
Five commands are available to typeset inferences with the short form:
1. \outof p<n>,<o>"<m>"with<r>\thatis starts the inference chain. The parameter <n> is the number
of units the output is moved to the right, <m> is a number of a formula, <o> is an offset to position the
number <m> <o> lines lower, and <r> is either empty or a space separated list of pairs v:F to indicate
the substitution of v by the formula F.
2. \use p<n>"<m>" is a shortcut of \outof if the parameters <o> and <r> are not needed; <o> is set 0 and
<r> is empty.
3. \followswith p<n>"<m>"a<c>p<N>s<l> draws the inference rule and can be expressed in the \bcc
macro of Section 6, no 7, as \bcc{<n>}/m{<m>}:<c>\rep(<N>-<n>)\*___\rep{<l>}\*---\ecc.
4. \substituting p<n> <r>\whichgives has the usual position parameter <n> and a list of substitutions
<r> in the above described form v:F.
5. \named "<m>" outputs the number <m> as the number of the previous formula.
An inference chain is typically typed with the sequence:
\outof ... with ... \thatis
\formula ...
\followswith ...
\substituting ... \whichgives
\formula ...
\named ...
or if no substitution in the first formula is required, the \outof line is replaced by the simpler \use.
8
9. Terminal symbols of the Begriffsschrift
In part 3 of the Begriffsschrift four symbols are defined. They are available as TEX commands. The
commands get more flexibility than the Begriffsschrift requires as all possible content can be addressed by
parameters.
δ x(α)
1. \gfvererbe with four parameters: $\gfvererbe\kd\ka{x(\ka)}{f(\kd,\ka)}$ outputs | .
α f (δ, α)
γ
2. \gffolgt with three parameters: $\gffolgt\kg\kb{f(x_\kg,y_\kb)}$ outputs e f (xγ , yβ ).
β
γ
3. \gfgehoertan with three parameters: $\gfgehoertan\kg\kb{f(x_\kg,z_\kb)}$ outputs e f (xγ , zβ ).
β
δ
4. \gfeindeutig with three parameters: $\gfeindeutig\kd\ke{f(\kd,\ke)}$ outputs I f (δ, ǫ).
ǫ
I use shortcuts for these special terminal symbols and reduce the number of parameters to the amount that
is used in the text; see Example 11 below.
⌣ Ψ (a) ⌣ Ψ (a) .
a a
e Φ(e)
⌣ Φ(e)
e
⌣
β) The output of the short form rule 1 (with the =) can have no effect except if the flag named
\gfbsaussagesichtbartrue is set. At the left the flag is false and at the right true; the line reads
\frege.{=.a} vs \frege.{=.{=.a}}: a vs a a vs a
Note: Both input forms, the symbolic representation and the short form, can be used with this style.
But only the short form creates smaller formulas if \gfbscompakttrue is set. The width of a formula in
symbolic representation must be changed manually if it is not coded with the symbols of the last list in
Section 5.
9
Example 8. Here is the example of Sections 1 and 5; it is coded in the short
form as \frege|{..\gA.{*.a.{f(\da)}}}: A .
a f (a)
⌣
!⌢ " #⌢ " #!
ǫ’ ǫ=m ǫ=n i α’ ǫ’ ǫ ⌢ (α ⌢ q)
ǫ ⌢ ǫ’ ǫ=b ǫ ⌢ ǫ’ ǫ=c ǫ=b
ǫ⌢u ǫ⌢v α=c
!
b ǫ’
⌢ ǫ=m
ǫ ⌢ ǫ’ ǫ=b
ǫ⌢u
!
c ǫ’
⌢ ǫ=n
ǫ ⌢ ǫ’ ǫ=c
ǫ⌢v
!⌢ " ǫ=n
#⌢ !
ǫ’ ǫ=m ǫ’ iq
ǫ ⌢ ǫ’ ǫ=b ǫ ⌢ ǫ’ ǫ=c
ǫ⌢u ǫ⌢v
And here is the source:
\pfrege1.{.-{\ke=c}.{\ke\G^v}}
\pfrege2.{.-{\ke=b}.{\ke\G^u}}
\bfrege1.{-.{\ke=n}.{{\ke\G^\kesl\pfbox1}}}
\bfrege2.{-.{\ke=m}.{{\ke\G^\kesl\pfbox2}}}
\bfrege3.{--{{\ke\G^(\ka\G^q)}}-{..{\ke=b}-{\ka=c}}}
\pfrege1.{-.{\ke=n}.{{\ke\G^\kesl\pfbox1}}}
\pfrege2.{-.{\ke=m}.{{\ke\G^\kesl\pfbox2}}}
\pparens3{\kesl\bfbox1\G^\G>q}
\pparens4{\bfbox1\G^\G>\kasl\kesl\bfbox3}
$$\frege|{..{..{..{{\kesl\pfbox2\G^\pfbox4}}
-{{b\G^\kesl\pfbox2}}}
-{{c\G^\kesl\pfbox1}}}
.{{\kesl\pfbox2\G^\pfbox3}}}
$$
10
12. Inferences of the Grundgesetze
The list entry 1c of Section 10 needs some explanation as it extends the list of available symbols for inferences.
Two of the symbols have no output (? and >). In the following list the text in parentheses contains the
sequence \*?#" or \*?># for the symbol ‘#’.
? (must be the first in the triple) signals that the next two symbols build an inference line in the style of
the Grundgesetze. Such symbols use 50% more space than ordinary symbols.
- ( ) is a single horizontal stroke;
. ( · ) is a single (centered) period;
= ( ) is a double stroke;
* ( ) is a single stroke in the height of the upper line of the double stroke;
_ ( ) is an empty space;
" () is a skip;
> has no output; the next symbol must be a transition-sign:
x (
) it must follow a >;
u (| }) it must follow a >.
Inferences of the Grundgesetze are separated by a new type of line:
1. \separator outputs a thick line with a centered dot.
11
13. Terminal symbols of the Grundgesetze
The Grundgesetze has not such complex constructions as the Begriffsschrift (see Section 9). But it contains
a lot of special symbols.
1. \G!: \ ξ. 16. \Gfm: u − a q.
2. \kasl: αΦ(α).
’ 17. \Gsm: p −̀ q.
3. \G^: a ⌢ b. 18. \G<: p \ q.
4. \GI: Ip. 19. \Gy: p q. ȳ
5. \G>: i p. 20. \Ge: p q. e֒
p (or Up).
6. \GU: U 21. \Gc: p q. c֒
n u (or ”u).
7. \Gn: ⌣ 22. \Gmf: p −a q.
8. \G0: 0\. 23. \G*: ∗ t.
9. \G1: 1\ . 24. \G6: ðs.
.
10. \Gbf or \Gff: f . 25. \Gf: γ s.
f
11. \G-: _´ q. 26. \GF: s u. F
12. \G~: ` ´ q. 27. \Gl: s l u.
13. \G_: p q. 28. \Gp: γp s.
14. \Guu: ⌣ ⌢ ⌣. 29. \Gss or \Gsz: s p.ß
15. \G;: o ; a.
The symbols are constructed with the Computer Modern and AMS-TEX fonts. But with the external flag
\fgefontsknown the second symbol in numbers 6 and 7 is selected (see Section 3).
Several symbols are rotated and this requires the package [Link]. The output of unrotated symbols
is activated by default; the external flag \let\showrotation=t must be given to activate rotation (see
Section 3).
f (d, a) α f (δ, α)
F (d)
And here is the source (note that \1 is a normal macro and needs no macro
expansion):
\def\1#1{{\gfvererbe\kd\ka{#1(\ka)}{f(\kd,\ka)}}}
\gfdefinition p4. .{*.d.{..{*.a.{..{F(\da)}
.{{f(\dd,\da)}}}}
.{F(\dd)}}}={\1F}
12
Example 12. Here is an example of the Grundgesetze, in which the <J> is a
colon.
ǫ(o
’ ⌢ (a ⌢ ǫ)) = o ; a (Ξ
And this is the source:
\gfdefinition p4: \kesl(o\G^(a\G^\ke))={o\G;a}
\named "$\gX$"
13
8. \gfbsersetzungdicke = 0.8 pt; thickness of the substitution line
9. \gfbsdefdicke = 0.75 pt; thickness of the definition strokes
10. \gfbsschlussabstand = 2.5 pt; distance of double lines in an inference
11. \gfbsschlussdicke = 0.8 pt; thickness of the second line in an inference
12. \gfbsdpabstand = 0.2 em; distance between colons in front of an inference
13. \gfbsmaxanzahlzeilen = 25; the maximal amount of lines in a single formula of the short form (the
package declares for each line one or two token and skip registers; two registers of each kind are needed
if substitutions are allowed);
14. \gfbsnegpct = 70; when \ifgfbsnegdirect is set to false the negation indicator has only a height of
this percentage so that a gap occurs.
And this is the list of additional dimen parameters for the style of the Grundgesetze.
15. \gfggstrichdicke = 0.58 pt; common line thickness
16. \gfggraise = 0.14 ex; height of horizontal line
17. \gfggneg = 0.47 ex; height of negation indicator
18. \gfgguht = 1.4 ex; height of the judgment stroke
19. \gfggudp = 0.9 ex; depth of the judgment stroke
20. \gfggdpabstand = 0.06 em; distance between colons in front of an inference
18. References
[1] Gottlob Frege, Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen
Denkens (Halle an der Saale: Louis Nebert, 1879)
“Begriffsschrift, a formula language, modeled upon that of arthmetic, for pure thought,” in: Jean van
Heijenoort (ed.), From Frege to Gödel: A Sourcebook in Mathematical Logic, 1879–1931,
(Cambridge, MA: Harvard University Press, 1967), 1–82; translation by S. Bauer-Mengelberg
[2] Gottlob Frege, Grundgesetze der Arithmetik — begriffsschriftlich abgeleitet (Jena: Hermann Pohle,
Volume 1 1893, Volume 2 1903)
Basic Laws of Arithmetic (Oxford: Oxford Univ. Press, 2013); translation by Philip A. Ebert, Marcus
Rossberg, Crispin Wright
[3] American Mathematical Society, amstex, [Link] or
[Link] (accessed: 2014-11-29)
[4] rotate, [Link] (accessed: 2014-11-29)
[5] J. J. Green, fge, [Link] (accessed: 2014-11-29)
[6] Silvio Levy, “Using Greek fonts with TEX,” TUGboat 9,1 (1988), 20–24
[7] Josh Parsons, [Link], [Link]
(accessed: 2014-11-29)
[8] Quirin Pamp, [Link], [Link] (ac-
cessed: 2014-11-29)
[9] Marcus Rossberg, [Link], [Link]
grundgesetze (accessed: 2014-11-29)
14