unicode latex
This commit is contained in:
parent
8bd79b8e39
commit
6febde620a
10 changed files with 2545 additions and 1165 deletions
|
@ -1,9 +1,9 @@
|
|||
SRC = prova.tex
|
||||
AUX = prova.aux
|
||||
DEL = prova.aux prova.bbl prova.blg prova.log prova.out
|
||||
NAME = prova
|
||||
SRC = tesi.tex
|
||||
AUX = tesi.aux
|
||||
DEL = tesi.aux tesi.bbl tesi.blg tesi.log tesi.out
|
||||
NAME = tesi
|
||||
|
||||
prova:
|
||||
tesi:
|
||||
@echo
|
||||
@echo "=== Removing temporary files ==="
|
||||
rm -f $(DEL)
|
||||
|
|
21
tesi/conv.py
Normal file
21
tesi/conv.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
import json
|
||||
from sys import argv
|
||||
|
||||
allsymbols = json.load(open('./unicode-latex.json'))
|
||||
symbols = ['≼', '→', '⊀', '⋠', '≺', '∀', '∈', '₂', '₁', 'ₐ', 'ₘ', 'ₙ', 'ᵢ' ]
|
||||
symbols = {s: allsymbols[s] for s in symbols}
|
||||
print(symbols)
|
||||
|
||||
|
||||
def read_by_char(fname):
|
||||
with open(fname, 'r') as fp:
|
||||
for line in fp.readlines():
|
||||
for ch in line:
|
||||
yield ch
|
||||
|
||||
def convert(ch):
|
||||
return symbols[ch] if ch in symbols else ch
|
||||
|
||||
newfile = [convert(ch) for ch in read_by_char(argv[1])]
|
||||
with open(argv[2], 'w') as f:
|
||||
f.writelines(newfile)
|
|
@ -1,28 +0,0 @@
|
|||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
|
||||
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
|
||||
\global\let\oldcontentsline\contentsline
|
||||
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
|
||||
\global\let\oldnewlabel\newlabel
|
||||
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
|
||||
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
|
||||
\AtEndDocument{\ifx\hyper@anchor\@undefined
|
||||
\let\contentsline\oldcontentsline
|
||||
\let\newlabel\oldnewlabel
|
||||
\fi}
|
||||
\fi}
|
||||
\global\let\hyper@last\relax
|
||||
\gdef\HyperFirstAtBeginDocument#1{#1}
|
||||
\providecommand*\HyPL@Entry[1]{}
|
||||
\HyPL@Entry{0<</S/D>>}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}{\bfseries \sffamily TODO} Scaletta [1/2]}{1}{section.1}\protected@file@percent }
|
||||
\newlabel{sec:org6c3943f}{{1}{1}{{\bfseries \sffamily TODO} Scaletta [1/2]}{section.1}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2}1. Background}{2}{section.2}\protected@file@percent }
|
||||
\newlabel{sec:orgad08c62}{{2}{2}{1. Background}{section.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}1.1 OCaml}{2}{subsection.2.1}\protected@file@percent }
|
||||
\newlabel{sec:orgca8d200}{{2.1}{2}{1.1 OCaml}{subsection.2.1}{}}
|
||||
\newlabel{sec:org83a2e95}{{1}{3}{1.1 OCaml}{Item.1}{}}
|
||||
\newlabel{sec:org2127ffb}{{2}{5}{1.1 OCaml}{Item.2}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}1.2.1.1 Initial state of the compilation}{6}{subsection.2.2}\protected@file@percent }
|
||||
\newlabel{sec:org0b0c254}{{2.2}{6}{1.2.1.1 Initial state of the compilation}{subsection.2.2}{}}
|
771
tesi/prova.log
771
tesi/prova.log
|
@ -1,771 +0,0 @@
|
|||
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019 Gentoo Linux) (preloaded format=xelatex 2020.2.19) 19 FEB 2020 16:42
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**prova.tex
|
||||
(./prova.tex
|
||||
LaTeX2e <2018-12-01>
|
||||
(/usr/share/texmf-dist/tex/latex/base/article.cls
|
||||
Document Class: article 2018/09/03 v1.4i Standard LaTeX document class
|
||||
(/usr/share/texmf-dist/tex/latex/base/size11.clo
|
||||
File: size11.clo 2018/09/03 v1.4i Standard LaTeX file (size option)
|
||||
)
|
||||
\c@part=\count80
|
||||
\c@section=\count81
|
||||
\c@subsection=\count82
|
||||
\c@subsubsection=\count83
|
||||
\c@paragraph=\count84
|
||||
\c@subparagraph=\count85
|
||||
\c@figure=\count86
|
||||
\c@table=\count87
|
||||
\abovecaptionskip=\skip41
|
||||
\belowcaptionskip=\skip42
|
||||
\bibindent=\dimen102
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/base/inputenc.sty
|
||||
Package: inputenc 2018/08/11 v1.3c Input encoding file
|
||||
\inpenc@prehook=\toks14
|
||||
\inpenc@posthook=\toks15
|
||||
|
||||
|
||||
Package inputenc Warning: inputenc package ignored with utf8 based engines.
|
||||
|
||||
) (/usr/share/texmf-dist/tex/latex/base/fontenc.sty
|
||||
Package: fontenc 2018/08/11 v2.0j Standard LaTeX package
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/base/t1enc.def
|
||||
File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file
|
||||
LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for T1+lmr on input line 105.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/lm/t1lmr.fd
|
||||
File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
|
||||
))
|
||||
(/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
||||
\KV@toks@=\toks16
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/graphics/trig.sty
|
||||
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||
)
|
||||
Package graphics Info: Driver file: xetex.def on input line 99.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/graphics-def/xetex.def
|
||||
File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex
|
||||
))
|
||||
\Gin@req@height=\dimen103
|
||||
\Gin@req@width=\dimen104
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/oberdiek/grffile.sty
|
||||
Package: grffile 2017/06/30 v1.18 Extended file name support for graphics (HO)
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/ifpdf.sty
|
||||
Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/generic/ifxetex/ifxetex.sty
|
||||
Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/oberdiek/kvoptions.sty
|
||||
Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
|
||||
Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
|
||||
Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/infwarerr.sty
|
||||
Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/etexcmds.sty
|
||||
Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/ifluatex.sty
|
||||
Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
|
||||
Package ifluatex Info: LuaTeX not detected.
|
||||
))))
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
|
||||
Package: pdftexcmds 2018/09/10 v0.29 Utility functions of pdfTeX for LuaTeX (HO
|
||||
)
|
||||
Package pdftexcmds Info: LuaTeX not detected.
|
||||
Package pdftexcmds Info: pdfTeX >= 1.30 not detected.
|
||||
Package pdftexcmds Info: \pdf@primitive is available.
|
||||
Package pdftexcmds Info: \pdf@ifprimitive is available.
|
||||
Package pdftexcmds Info: \pdfdraftmode not found.
|
||||
)
|
||||
Package grffile Info: Option `multidot' is set to `true'.
|
||||
Package grffile Info: Option `extendedchars' is set to `false'.
|
||||
Package grffile Info: Option `space' is set to `true'.
|
||||
Package grffile Info: \Gin@ii of package `graphicx' fixed on input line 494.
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/tools/longtable.sty
|
||||
Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)+ FMi change
|
||||
\LTleft=\skip43
|
||||
\LTright=\skip44
|
||||
\LTpre=\skip45
|
||||
\LTpost=\skip46
|
||||
\LTchunksize=\count88
|
||||
\LTcapwidth=\dimen105
|
||||
\LT@head=\box27
|
||||
\LT@firsthead=\box28
|
||||
\LT@foot=\box29
|
||||
\LT@lastfoot=\box30
|
||||
\LT@cols=\count89
|
||||
\LT@rows=\count90
|
||||
\c@LT@tables=\count91
|
||||
\c@LT@chunks=\count92
|
||||
\LT@p@ftn=\toks17
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/wrapfig/wrapfig.sty
|
||||
\wrapoverhang=\dimen106
|
||||
\WF@size=\dimen107
|
||||
\c@WF@wrappedlines=\count93
|
||||
\WF@box=\box31
|
||||
\WF@everypar=\toks18
|
||||
Package: wrapfig 2003/01/31 v 3.6
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/graphics/rotating.sty
|
||||
Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/base/ifthen.sty
|
||||
Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
|
||||
)
|
||||
\c@r@tfl@t=\count94
|
||||
\rotFPtop=\skip47
|
||||
\rotFPbot=\skip48
|
||||
\rot@float@box=\box32
|
||||
\rot@mess@toks=\toks19
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/generic/ulem/ulem.sty
|
||||
\UL@box=\box33
|
||||
\UL@hyphenbox=\box34
|
||||
\UL@skip=\skip49
|
||||
\UL@hook=\toks20
|
||||
\UL@height=\dimen108
|
||||
\UL@pe=\count95
|
||||
\UL@pixel=\dimen109
|
||||
\ULC@box=\box35
|
||||
Package: ulem 2012/05/18
|
||||
\ULdepth=\dimen110
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
Package: amsmath 2018/12/01 v2.17b AMS math features
|
||||
\@mathmargin=\skip50
|
||||
|
||||
For additional information on amsmath, use the `?' option.
|
||||
(/usr/share/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
Package: amstext 2000/06/29 v2.01 AMS text
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
File: amsgen.sty 1999/11/30 v2.0 generic functions
|
||||
\@emptytoks=\toks21
|
||||
\ex@=\dimen111
|
||||
))
|
||||
(/usr/share/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
|
||||
\pmbraise@=\dimen112
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
Package: amsopn 2016/03/08 v2.02 operator names
|
||||
)
|
||||
\inf@bad=\count96
|
||||
LaTeX Info: Redefining \frac on input line 223.
|
||||
\uproot@=\count97
|
||||
\leftroot@=\count98
|
||||
LaTeX Info: Redefining \overline on input line 385.
|
||||
\classnum@=\count99
|
||||
\DOTSCASE@=\count100
|
||||
LaTeX Info: Redefining \ldots on input line 482.
|
||||
LaTeX Info: Redefining \dots on input line 485.
|
||||
LaTeX Info: Redefining \cdots on input line 606.
|
||||
\Mathstrutbox@=\box36
|
||||
\strutbox@=\box37
|
||||
\big@size=\dimen113
|
||||
LaTeX Font Info: Redeclaring font encoding OML on input line 729.
|
||||
LaTeX Font Info: Redeclaring font encoding OMS on input line 730.
|
||||
\macc@depth=\count101
|
||||
\c@MaxMatrixCols=\count102
|
||||
\dotsspace@=\muskip10
|
||||
\c@parentequation=\count103
|
||||
\dspbrk@lvl=\count104
|
||||
\tag@help=\toks22
|
||||
\row@=\count105
|
||||
\column@=\count106
|
||||
\maxfields@=\count107
|
||||
\andhelp@=\toks23
|
||||
\eqnshift@=\dimen114
|
||||
\alignsep@=\dimen115
|
||||
\tagshift@=\dimen116
|
||||
\tagwidth@=\dimen117
|
||||
\totwidth@=\dimen118
|
||||
\lineht@=\dimen119
|
||||
\@envbody=\toks24
|
||||
\multlinegap=\skip51
|
||||
\multlinetaggap=\skip52
|
||||
\mathdisplay@stack=\toks25
|
||||
LaTeX Info: Redefining \[ on input line 2844.
|
||||
LaTeX Info: Redefining \] on input line 2845.
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/base/textcomp.sty
|
||||
Package: textcomp 2018/08/11 v2.0j Standard LaTeX package
|
||||
Package textcomp Info: Sub-encoding information:
|
||||
(textcomp) 5 = only ISO-Adobe without \textcurrency
|
||||
(textcomp) 4 = 5 + \texteuro
|
||||
(textcomp) 3 = 4 + \textohm
|
||||
(textcomp) 2 = 3 + \textestimated + \textcurrency
|
||||
(textcomp) 1 = TS1 - \textcircled - \t
|
||||
(textcomp) 0 = TS1 (full)
|
||||
(textcomp) Font families with sub-encoding setting implement
|
||||
(textcomp) only a restricted character set as indicated.
|
||||
(textcomp) Family '?' is the default used for unknown fonts.
|
||||
(textcomp) See the documentation for details.
|
||||
Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/base/ts1enc.def
|
||||
File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
|
||||
)
|
||||
LaTeX Info: Redefining \oldstylenums on input line 334.
|
||||
Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349.
|
||||
Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350.
|
||||
Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351.
|
||||
Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352.
|
||||
Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353.
|
||||
Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354.
|
||||
Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355.
|
||||
Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356.
|
||||
Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357.
|
||||
Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358.
|
||||
Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359.
|
||||
Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360.
|
||||
Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361.
|
||||
Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362.
|
||||
Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363.
|
||||
Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364.
|
||||
Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365.
|
||||
Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366.
|
||||
Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367.
|
||||
Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368.
|
||||
Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369.
|
||||
Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370.
|
||||
Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371.
|
||||
Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372.
|
||||
|
||||
Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373.
|
||||
Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374.
|
||||
Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375.
|
||||
Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376.
|
||||
Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377.
|
||||
Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378.
|
||||
Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379.
|
||||
Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380.
|
||||
Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381.
|
||||
Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382.
|
||||
Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383.
|
||||
Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384.
|
||||
Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385.
|
||||
Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386.
|
||||
Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387.
|
||||
Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388.
|
||||
Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389.
|
||||
Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390.
|
||||
Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391.
|
||||
Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392.
|
||||
Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393.
|
||||
Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394.
|
||||
Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395.
|
||||
Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396.
|
||||
Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397.
|
||||
Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398.
|
||||
Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399.
|
||||
Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400.
|
||||
Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401.
|
||||
Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402.
|
||||
Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403.
|
||||
Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404.
|
||||
Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405.
|
||||
Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406.
|
||||
Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407.
|
||||
Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408.
|
||||
Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409.
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
||||
\symAMSa=\mathgroup4
|
||||
\symAMSb=\mathgroup5
|
||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
||||
))
|
||||
(/usr/share/texmf-dist/tex/latex/capt-of/capt-of.sty
|
||||
Package: capt-of 2009/12/29 v0.2 standard captions outside of floats
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||
Package: hyperref 2018/11/30 v6.88e Hypertext links for LaTeX
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
|
||||
Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
|
||||
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
|
||||
Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
|
||||
Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
|
||||
Package hobsub Info: Skipping package `infwarerr' (already loaded).
|
||||
Package hobsub Info: Skipping package `ltxcmds' (already loaded).
|
||||
Package hobsub Info: Skipping package `ifluatex' (already loaded).
|
||||
Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
|
||||
Package ifvtex Info: VTeX not detected.
|
||||
Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
|
||||
Package hobsub Info: Skipping package `ifpdf' (already loaded).
|
||||
Package hobsub Info: Skipping package `etexcmds' (already loaded).
|
||||
Package hobsub Info: Skipping package `kvsetkeys' (already loaded).
|
||||
Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
|
||||
Package hobsub Info: Skipping package `pdftexcmds' (already loaded).
|
||||
Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
|
||||
Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
|
||||
)
|
||||
Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
|
||||
Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
|
||||
)
|
||||
Package hobsub Info: Skipping package `hobsub' (already loaded).
|
||||
Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
|
||||
Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
|
||||
Package: xcolor-patch 2016/05/16 xcolor patch
|
||||
Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
|
||||
Package atveryend Info: \enddocument detected (standard20110627).
|
||||
Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
|
||||
Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
|
||||
Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/oberdiek/auxhook.sty
|
||||
Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
|
||||
)
|
||||
\@linkdim=\dimen120
|
||||
\Hy@linkcounter=\count108
|
||||
\Hy@pagecounter=\count109
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||
File: pd1enc.def 2018/11/30 v6.88e Hyperref: PDFDocEncoding definition (HO)
|
||||
)
|
||||
\Hy@SavedSpaceFactor=\count110
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/latexconfig/hyperref.cfg
|
||||
File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
|
||||
)
|
||||
Package hyperref Info: Hyper figures OFF on input line 4519.
|
||||
Package hyperref Info: Link nesting OFF on input line 4524.
|
||||
Package hyperref Info: Hyper index ON on input line 4527.
|
||||
Package hyperref Info: Plain pages OFF on input line 4534.
|
||||
Package hyperref Info: Backreferencing OFF on input line 4539.
|
||||
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
|
||||
Package hyperref Info: Bookmarks ON on input line 4772.
|
||||
\c@Hy@tempcnt=\count111
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/url/url.sty
|
||||
\Urlmuskip=\muskip11
|
||||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
|
||||
)
|
||||
LaTeX Info: Redefining \url on input line 5125.
|
||||
\XeTeXLinkMargin=\dimen121
|
||||
\Fld@menulength=\count112
|
||||
\Field@Width=\dimen122
|
||||
\Fld@charsize=\dimen123
|
||||
Package hyperref Info: Hyper figures OFF on input line 6380.
|
||||
Package hyperref Info: Link nesting OFF on input line 6385.
|
||||
Package hyperref Info: Hyper index ON on input line 6388.
|
||||
Package hyperref Info: backreferencing OFF on input line 6395.
|
||||
Package hyperref Info: Link coloring OFF on input line 6400.
|
||||
Package hyperref Info: Link coloring with OCG OFF on input line 6405.
|
||||
Package hyperref Info: PDF/A mode OFF on input line 6410.
|
||||
LaTeX Info: Redefining \ref on input line 6450.
|
||||
LaTeX Info: Redefining \pageref on input line 6454.
|
||||
\Hy@abspage=\count113
|
||||
\c@Item=\count114
|
||||
\c@Hfootnote=\count115
|
||||
)
|
||||
Package hyperref Info: Driver (autodetected): hxetex.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/hyperref/hxetex.def
|
||||
File: hxetex.def 2018/11/30 v6.88e Hyperref driver for XeTeX
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/hyperref/puenc.def
|
||||
File: puenc.def 2018/11/30 v6.88e Hyperref: PDF Unicode definition (HO)
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/stringenc.sty
|
||||
Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO
|
||||
)
|
||||
)
|
||||
\pdfm@box=\box38
|
||||
\c@Hy@AnnotLevel=\count116
|
||||
\HyField@AnnotCount=\count117
|
||||
\Fld@listcount=\count118
|
||||
\c@bookmark@seq@number=\count119
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
|
||||
Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
|
||||
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
|
||||
82.
|
||||
)
|
||||
\Hy@SectionHShift=\skip53
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
Invalid UTF-8 byte or sequence at line 11 replaced by U+FFFD.
|
||||
Package: algorithm 2009/08/24 v0.1 Document Style `algorithm' - floating enviro
|
||||
nment
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/float/float.sty
|
||||
Package: float 2001/11/08 v1.3d Float enhancements (AL)
|
||||
\c@float@type=\count120
|
||||
\float@exts=\toks26
|
||||
\float@box=\box39
|
||||
\@float@everytoks=\toks27
|
||||
\@floatcapt=\box40
|
||||
)
|
||||
\@float@every@algorithm=\toks28
|
||||
\c@algorithm=\count121
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
Package: algpseudocode
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
Package: algorithmicx 2005/04/27 v1.2 Algorithmicx
|
||||
|
||||
Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style
|
||||
\c@ALG@line=\count122
|
||||
\c@ALG@rem=\count123
|
||||
\c@ALG@nested=\count124
|
||||
\ALG@tlm=\skip54
|
||||
\ALG@thistlm=\skip55
|
||||
\c@ALG@Lnr=\count125
|
||||
\c@ALG@blocknr=\count126
|
||||
\c@ALG@storecount=\count127
|
||||
\c@ALG@tmpcounter=\count128
|
||||
\ALG@tmplength=\skip56
|
||||
)
|
||||
Document Style - pseudocode environments for use with the `algorithmicx' style
|
||||
) (/usr/share/texmf-dist/tex/latex/amscls/amsthm.sty
|
||||
Package: amsthm 2017/10/31 v2.20.4
|
||||
\thm@style=\toks29
|
||||
\thm@bodyfont=\toks30
|
||||
\thm@headfont=\toks31
|
||||
\thm@notefont=\toks32
|
||||
\thm@headpunct=\toks33
|
||||
\thm@preskip=\skip57
|
||||
\thm@postskip=\skip58
|
||||
\thm@headsep=\skip59
|
||||
\dth@everypar=\toks34
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/base/fontenc.sty
|
||||
Package: fontenc 2018/08/11 v2.0j Standard LaTeX package
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/base/t1enc.def
|
||||
File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file
|
||||
LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
|
||||
))
|
||||
\c@definition=\count129
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/listings/listings.sty
|
||||
\lst@mode=\count130
|
||||
\lst@gtempboxa=\box41
|
||||
\lst@token=\toks35
|
||||
\lst@length=\count131
|
||||
\lst@currlwidth=\dimen124
|
||||
\lst@column=\count132
|
||||
\lst@pos=\count133
|
||||
\lst@lostspace=\dimen125
|
||||
\lst@width=\dimen126
|
||||
\lst@newlines=\count134
|
||||
\lst@lineno=\count135
|
||||
\lst@maxwidth=\dimen127
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty
|
||||
File: lstmisc.sty 2019/02/27 1.8b (Carsten Heinz)
|
||||
\c@lstnumber=\count136
|
||||
\lst@skipnumbers=\count137
|
||||
\lst@framebox=\box42
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/latex/listings/listings.cfg
|
||||
File: listings.cfg 2019/02/27 1.8b listings configuration
|
||||
))
|
||||
Package: listings 2019/02/27 1.8b (Carsten Heinz)
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/graphics/color.sty
|
||||
Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC)
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
File: color.cfg 2016/01/02 v1.6 sample color configuration
|
||||
)
|
||||
Package color Info: Driver file: xetex.def on input line 147.
|
||||
)
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/se-ascii-print.def
|
||||
File: se-ascii-print.def 2016/05/16 v1.11 stringenc: Printable ASCII characters
|
||||
|
||||
) (./prova.aux)
|
||||
\openout1 = `prova.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 37.
|
||||
LaTeX Font Info: Try loading font information for TS1+cmr on input line 37.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/base/ts1cmr.fd
|
||||
File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
|
||||
)
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 37.
|
||||
LaTeX Font Info: ... okay on input line 37.
|
||||
\AtBeginShipoutBox=\box43
|
||||
Package hyperref Info: Link coloring OFF on input line 37.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||
Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
|
||||
|
||||
(/usr/share/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
|
||||
Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
|
||||
)
|
||||
\c@section@level=\count138
|
||||
)
|
||||
LaTeX Info: Redefining \ref on input line 37.
|
||||
LaTeX Info: Redefining \pageref on input line 37.
|
||||
LaTeX Info: Redefining \nameref on input line 37.
|
||||
(./prova.out)
|
||||
(./prova.out)
|
||||
\@outlinefile=\write3
|
||||
\openout3 = `prova.out'.
|
||||
|
||||
\c@lstlisting=\count139
|
||||
LaTeX Font Info: Try loading font information for U+msa on input line 40.
|
||||
(/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for U+msb on input line 40.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
LaTeX Font Info: Try loading font information for T1+lmss on input line 40.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/lm/t1lmss.fd
|
||||
File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
|
||||
) [1
|
||||
|
||||
]
|
||||
LaTeX Font Info: Try loading font information for TS1+lmr on input line 82.
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/lm/ts1lmr.fd
|
||||
File: ts1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
|
||||
) [2]
|
||||
LaTeX Font Info: Try loading font information for T1+lmtt on input line 145.
|
||||
|
||||
|
||||
(/usr/share/texmf-dist/tex/latex/lm/t1lmtt.fd
|
||||
File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern
|
||||
) [3]
|
||||
Overfull \hbox (18.04773pt too wide) in paragraph at lines 180--180
|
||||
[]\T1/lmtt/m/n/10.95 | (Some _, None) -> print "Pair of optional types, last n
|
||||
ull"[]
|
||||
[]
|
||||
|
||||
|
||||
Overfull \hbox (23.79646pt too wide) in paragraph at lines 180--180
|
||||
[]\T1/lmtt/m/n/10.95 | (None, Some _) -> print "Pair of optional types, first
|
||||
null"[]
|
||||
[]
|
||||
|
||||
|
||||
Overfull \hbox (6.55026pt too wide) in paragraph at lines 180--180
|
||||
[]\T1/lmtt/m/n/10.95 | (None, None) -> print "Pair of optional types, both nul
|
||||
l"[]
|
||||
[]
|
||||
|
||||
[4]
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₙ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₙ in font ec-lmr10!
|
||||
Missing character: There is no ⁱ in font ec-lmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no ₁ in font cmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no ₂ in font cmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no ₘ in font cmmi10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
|
||||
Overfull \hbox (2.96298pt too wide) in paragraph at lines 259--261
|
||||
[]\T1/lmr/m/n/10.95 Most na-tive data types in OCaml, such as in-te-gers, tu-pl
|
||||
es, lists, records,
|
||||
[]
|
||||
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₐ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₐ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₐ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₐ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₐ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₐ in font ec-lmr10!
|
||||
Missing character: There is no ᵢ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ᵢ in font ec-lmr10!
|
||||
Missing character: There is no ∀ in font ec-lmr10!
|
||||
Missing character: There is no ∈ in font ec-lmr10!
|
||||
! Undefined control sequence.
|
||||
l.285 \vv
|
||||
{v} = (v₁, v₂, \ldots{}, vᵢ) matches the line number i in P if and...
|
||||
|
||||
?
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ᵢ in font ec-lmr10!
|
||||
[5]
|
||||
! Misplaced alignment tab character &.
|
||||
l.288 \item \[ p_{i,1} &
|
||||
p_{i,2} & \cdots & p_{i,n} \] ≼ (v₁, v₂, \ldots{}, vᵢ)
|
||||
|
||||
?
|
||||
! Misplaced alignment tab character &.
|
||||
l.288 \item \[ p_{i,1} & p_{i,2} &
|
||||
\cdots & p_{i,n} \] ≼ (v₁, v₂, \ldots{}, vᵢ)
|
||||
|
||||
?
|
||||
! Misplaced alignment tab character &.
|
||||
<recently read> &
|
||||
|
||||
l.288 \item \[ p_{i,1} & p_{i,2} & \cdots &
|
||||
p_{i,n} \] ≼ (v₁, v₂, \ldots{}, vᵢ)
|
||||
|
||||
?
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ᵢ in font ec-lmr10!
|
||||
! Misplaced alignment tab character &.
|
||||
l.289 \item \[ ∀j < i p_{j,1} &
|
||||
p_{j,2} & \cdots & p_{j,n} \] ⋠ (v₁, v₂, \ld...
|
||||
|
||||
?
|
||||
! Misplaced alignment tab character &.
|
||||
l.289 \item \[ ∀j < i p_{j,1} & p_{j,2} &
|
||||
\cdots & p_{j,n} \] ⋠ (v₁, v₂, \ld...
|
||||
|
||||
?
|
||||
! Misplaced alignment tab character &.
|
||||
<recently read> &
|
||||
|
||||
l.289 \item \[ ∀j < i p_{j,1} & p_{j,2} & \cdots &
|
||||
p_{j,n} \] ⋠ (v₁, v₂, \ld...
|
||||
|
||||
?
|
||||
Missing character: There is no ∀ in font cmr10!
|
||||
Missing character: There is no ⋠ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ᵢ in font ec-lmr10!
|
||||
Missing character: There is no ≼ in font ec-lmr10!
|
||||
Missing character: There is no ≡ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₘ in font ec-lmr10!
|
||||
Missing character: There is no ₘ in font ec-lmr10!
|
||||
! Undefined control sequence.
|
||||
l.324 \vv
|
||||
{x} = (x₁, x₂, \ldots{}, xₙ) of size n
|
||||
?
|
||||
Missing character: There is no ₁ in font ec-lmr10!
|
||||
Missing character: There is no ₂ in font ec-lmr10!
|
||||
Missing character: There is no ₙ in font ec-lmr10!
|
||||
Missing character: There is no → in font ec-lmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no ₁ in font cmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no ₂ in font cmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Missing character: There is no ₘ in font cmmi10!
|
||||
Missing character: There is no → in font cmr10!
|
||||
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 336.
|
||||
[6]
|
||||
Package atveryend Info: Empty hook `AfterLastShipout' on input line 336.
|
||||
(./prova.aux)
|
||||
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 336.
|
||||
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 336.
|
||||
|
||||
|
||||
Package rerunfilecheck Warning: File `prova.out' has changed.
|
||||
(rerunfilecheck) Rerun to get outlines right
|
||||
(rerunfilecheck) or use package `bookmark'.
|
||||
|
||||
Package rerunfilecheck Info: Checksums for `prova.out':
|
||||
(rerunfilecheck) Before: 25CD49CE93FE2EBDE0A77084F183FACA
|
||||
(rerunfilecheck) After: 4C10F3A28DB5B56905D83B509FE58CA0.
|
||||
|
||||
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
|
||||
|
||||
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 336.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
11724 strings out of 494894
|
||||
164120 string characters out of 6177622
|
||||
238134 words of memory out of 5000000
|
||||
15485 multiletter control sequences out of 15000+600000
|
||||
53749 words of font info for 57 fonts, out of 8000000 for 9000
|
||||
14 hyphenation exceptions out of 8191
|
||||
36i,9n,45p,286b,536s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
|
||||
Output written on prova.pdf (6 pages).
|
|
@ -1,4 +0,0 @@
|
|||
\BOOKMARK [1][-]{section.1}{TODO\040Scaletta\040[1/2]}{}% 1
|
||||
\BOOKMARK [1][-]{section.2}{1.\040Background}{}% 2
|
||||
\BOOKMARK [2][-]{subsection.2.1}{1.1\040OCaml}{section.2}% 3
|
||||
\BOOKMARK [2][-]{subsection.2.2}{1.2.1.1\040Initial\040state\040of\040the\040compilation}{section.2}% 4
|
BIN
tesi/prova.pdf
BIN
tesi/prova.pdf
Binary file not shown.
336
tesi/prova.tex
336
tesi/prova.tex
|
@ -1,336 +0,0 @@
|
|||
% Created 2020-02-19 Wed 16:42
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{grffile}
|
||||
\usepackage{longtable}
|
||||
\usepackage{wrapfig}
|
||||
\usepackage{rotating}
|
||||
\usepackage[normalem]{ulem}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{textcomp}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{capt-of}
|
||||
\usepackage{hyperref}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{algorithm}
|
||||
\usepackage{algpseudocode}
|
||||
\usepackage{amsmath,amssymb,amsthm}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\newtheorem{definition}{Definition}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{listings}
|
||||
\usepackage{color}
|
||||
\author{Francesco Mecca}
|
||||
\date{}
|
||||
\title{Translation Verification of the OCaml pattern matching compiler}
|
||||
\hypersetup{
|
||||
pdfauthor={Francesco Mecca},
|
||||
pdftitle={Translation Verification of the OCaml pattern matching compiler},
|
||||
pdfkeywords={},
|
||||
pdfsubject={},
|
||||
pdfcreator={Emacs 26.3 (Org mode 9.1.9)},
|
||||
pdflang={English}}
|
||||
\begin{document}
|
||||
|
||||
\maketitle
|
||||
\section{{\bfseries\sffamily TODO} Scaletta [1/2]}
|
||||
\label{sec:org6c3943f}
|
||||
\begin{itemize}
|
||||
\item[{$\boxtimes$}] Abstract
|
||||
\item[{$\boxminus$}] Background [25\%]
|
||||
\begin{itemize}
|
||||
\item[{$\boxtimes$}] Ocaml
|
||||
\item[{$\square$}] Lambda code
|
||||
\item[{$\square$}] Pattern matching
|
||||
\item[{$\square$}] Translation Verification
|
||||
\item[{$\square$}] Symbolic execution
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\begin{abstract}
|
||||
|
||||
This dissertation presents an algorithm for the translation validation of the OCaml
|
||||
pattern matching compiler. Given the source representation of the target program and the
|
||||
target program compiled in untyped lambda form, the algoritmhm is capable of modelling
|
||||
the source program in terms of symbolic constraints on it's branches and apply symbolic
|
||||
execution on the untyped lambda representation in order to validate wheter the compilation
|
||||
produced a valid result.
|
||||
In this context a valid result means that for every input in the domain of the source
|
||||
program the untyped lambda translation produces the same output as the source program.
|
||||
The input of the program is modelled in terms of symbolic constraints closely related to
|
||||
the runtime representation of OCaml objects and the output consists of OCaml code
|
||||
blackboxes that are not evaluated in the context of the verification.
|
||||
|
||||
\end{abstract}
|
||||
|
||||
\section{1. Background}
|
||||
\label{sec:orgad08c62}
|
||||
|
||||
\subsection{1.1 OCaml}
|
||||
\label{sec:orgca8d200}
|
||||
Objective Caml (OCaml) is a dialect of the ML (Meta-Language) family of programming
|
||||
languages.
|
||||
OCaml shares many features with other dialects of ML, such as SML and Caml Light,
|
||||
The main features of ML languages are the use of the Hindley-Milner type system that
|
||||
provides many advantages with respect to static type systems of traditional imperative and object
|
||||
oriented language such as C, C++ and Java, such as:
|
||||
\begin{itemize}
|
||||
\item Parametric polymorphism: in certain scenarios a function can accept more than one
|
||||
\end{itemize}
|
||||
type for the input parameters. For example a function that computes the lenght of a
|
||||
list doesn't need to inspect the type of the elements of the list and for this reason
|
||||
a List.length function can accept list of integers, list of strings and in general
|
||||
list of any type. Such languages offer polymorphic functions through subtyping at
|
||||
runtime only, while other languages such as C++ offer polymorphism through compile
|
||||
time templates and function overloading.
|
||||
With the Hindley-Milner type system each well typed function can have more than one
|
||||
type but always has a unique best type, called the \emph{principal type}.
|
||||
For example the principal type of the List.length function is "For any \emph{a}, function from
|
||||
list of \emph{a} to \emph{int}" and \emph{a} is called the \emph{type parameter}.
|
||||
\begin{itemize}
|
||||
\item Strong typing: Languages such as C and C++ allow the programmer to operate on data
|
||||
\end{itemize}
|
||||
without considering its type, mainly through pointers. Other languages such as C\#
|
||||
and Go allow type erasure so at runtime the type of the data can't be queried.
|
||||
In the case of programming languages using an Hindley-Milner type system the
|
||||
programmer is not allowed to operate on data by ignoring or promoting its type.
|
||||
\begin{itemize}
|
||||
\item Type Inference: the principal type of a well formed term can be inferred without any
|
||||
\end{itemize}
|
||||
annotation or declaration.
|
||||
\begin{itemize}
|
||||
\item Algebraic data types: types that are modelled by the use of two
|
||||
\end{itemize}
|
||||
algebraic operations, sum and product.
|
||||
A sum type is a type that can hold of many different types of
|
||||
objects, but only one at a time. For example the sum type defined
|
||||
as \emph{A + B} can hold at any moment a value of type A or a value of
|
||||
type B. Sum types are also called tagged union or variants.
|
||||
A product type is a type constructed as a direct product
|
||||
of multiple types and contains at any moment one instance for
|
||||
every type of its operands. Product types are also called tuples
|
||||
or records. Algebraic data types can be recursive
|
||||
in their definition and can be combined.
|
||||
Moreover ML languages are functional, meaning that functions are
|
||||
treated as first class citizens and variables are immutable,
|
||||
although mutable statements and imperative constructs are permitted.
|
||||
In addition to that OCaml features an object system, that provides
|
||||
inheritance, subtyping and dynamic binding, and modules, that
|
||||
provide a way to encapsulate definitions. Modules are checked
|
||||
statically and can be reificated through functors.
|
||||
|
||||
\begin{enumerate}
|
||||
\item {\bfseries\sffamily TODO} 1.2 Pattern matching [37\%]
|
||||
\label{sec:org83a2e95}
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] capisci come mettere gli esempi uno accanto all'altro
|
||||
\end{itemize}
|
||||
|
||||
Pattern matching is a widely adopted mechanism to interact with ADT.
|
||||
C family languages provide branching on predicates through the use of
|
||||
if statements and switch statements.
|
||||
Pattern matching is a mechanism for destructuring and analyzing data
|
||||
structures for the presence of values simbolically represented as
|
||||
tokens. One common example of pattern matching is the use of regular
|
||||
expressions on strings. OCaml provides pattern matching on ADT,
|
||||
primitive data types.
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\boxtimes$}] Esempio enum, C e Ocaml
|
||||
\end{itemize}
|
||||
\begin{verbatim}
|
||||
type color = | Red | Blue | Green
|
||||
|
||||
begin match color with
|
||||
| Red -> print "red"
|
||||
| Blue -> print "red"
|
||||
| Green -> print "red"
|
||||
|
||||
\end{verbatim}
|
||||
|
||||
OCaml provides tokens to express data destructoring
|
||||
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\boxtimes$}] Esempio destructor list
|
||||
\end{itemize}
|
||||
\begin{verbatim}
|
||||
|
||||
begin match list with
|
||||
| [ ] -> print "empty list"
|
||||
| element1 :: [ ] -> print "one element"
|
||||
| element1 :: element2 :: [ ] -> print "two elements"
|
||||
| head :: tail-> print "head followed by many elements"
|
||||
\end{verbatim}
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\boxtimes$}] Esempio destructor tuples
|
||||
\end{itemize}
|
||||
\begin{verbatim}
|
||||
|
||||
begin match tuple with
|
||||
| (Some _, Some _) -> print "Pair of optional types"
|
||||
| (Some _, None) -> print "Pair of optional types, last null"
|
||||
| (None, Some _) -> print "Pair of optional types, first null"
|
||||
| (None, None) -> print "Pair of optional types, both null"
|
||||
\end{verbatim}
|
||||
|
||||
Pattern clauses can make the use of \emph{guards} to test predicates and
|
||||
variables can be binded in scope.
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Esempio binding e guards
|
||||
\end{itemize}
|
||||
\begin{verbatim}
|
||||
|
||||
begin match token_list with
|
||||
| "switch"::var::"{"::rest ->
|
||||
| "case"::":"::var::rest when is_int var ->
|
||||
| "case"::":"::var::rest when is_string var ->
|
||||
| "}"::[ ] -> stop ()
|
||||
| "}"::rest -> error "syntax error: " rest
|
||||
|
||||
\end{verbatim}
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Un altro esempio con destructors e tutto i lresto
|
||||
\end{itemize}
|
||||
|
||||
In general pattern matching on primitive and algebraic data types takes the
|
||||
following form.
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Esempio informale
|
||||
\end{itemize}
|
||||
|
||||
It can be described more formally through a BNF grammar.
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] BNF
|
||||
|
||||
\item[{$\square$}] Come funziona il pattern matching?
|
||||
\end{itemize}
|
||||
|
||||
\item {\bfseries\sffamily TODO} 1.2.1 Pattern matching compilation to lambda code
|
||||
\label{sec:org2127ffb}
|
||||
|
||||
\begin{itemize}
|
||||
\item[{$\square$}] Da tabella a matrice
|
||||
\end{itemize}
|
||||
|
||||
Formally, pattern are defined as follows:
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
pattern ::= & Patterns\\
|
||||
\hline
|
||||
\_ & wildcard\\
|
||||
x & variable\\
|
||||
c(p₁,p₂,\ldots{},pₙ & constructor pattern\\
|
||||
(p₁\(\vert{}\) p₂) & or-pattern\\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
Values are defined as follows:
|
||||
\begin{center}
|
||||
\begin{tabular}{ll}
|
||||
values ::= & Values\\
|
||||
\hline
|
||||
c(v₁, v₂, \ldots{}, vₙ) & constructor value\\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
|
||||
The entire pattern matching code can be represented as a clause matrix
|
||||
that associates rows of patterns (p\(_{\text{i,1}}\), p\(_{\text{i,2}}\), \ldots{}, p\(_{\text{i,n}}\)) to
|
||||
lambda code action lⁱ
|
||||
\begin{equation*}
|
||||
(P → L) =
|
||||
\begin{pmatrix}
|
||||
p_{1,1} & p_{1,2} & \cdots & p_{1,n} → l₁ \\
|
||||
p_{2,1} & p_{2,2} & \cdots & p_{2,n} → l₂ \\
|
||||
\vdots & \vdots & \ddots \vdots → \vdots \\
|
||||
p_{m,1} & p_{m,2} & \cdots & p_{m,n} → lₘ
|
||||
\end{pmatrix}
|
||||
\end{equation*}
|
||||
|
||||
Most native data types in OCaml, such as integers, tuples, lists,
|
||||
records, can be seen as instances of the following definition
|
||||
|
||||
\begin{verbatim}
|
||||
type t = Nil | One of int | Cons of int * t
|
||||
\end{verbatim}
|
||||
that is a type \emph{t} with three constructors that define its complete
|
||||
signature.
|
||||
Every constructor has an arity. Nil, a constructor of arity 0, is
|
||||
called a constant constructor.
|
||||
|
||||
The pattern \emph{p} matches a value \emph{v}, written as p ≼ v, when
|
||||
one of the following rules apply
|
||||
|
||||
\begin{center}
|
||||
\begin{tabular}{llll}
|
||||
\_ & ≼ & v & \\
|
||||
x & ≼ & v & \\
|
||||
(p₁ \(\vert{}\)$\backslash$ p₂) & ≼ & v & iff p₁ ≼ v or p₂ ≼ v\\
|
||||
c(p₁, p₂, \ldots{}, pₐ) & ≼ & c(v₁, v₂, \ldots{}, vₐ) & iff (p₁, p₂, \ldots{}, pₐ) ≼ (v₁, v₂, \ldots{}, vₐ)\\
|
||||
(p₁, p₂, \ldots{}, pₐ) & ≼ & (v₁, v₂, \ldots{}, vₐ) & iff pᵢ ≼ vᵢ ∀i ∈ [1..a]\\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
We can also say that \emph{v} is an \emph{instance} of \emph{p}.
|
||||
|
||||
When we consider the pattern matrix P we say that the value vector
|
||||
\vv{v} = (v₁, v₂, \ldots{}, vᵢ) matches the line number i in P if and only if the following two
|
||||
conditions are satisfied:
|
||||
\begin{itemize}
|
||||
\item \[ p_{i,1} & p_{i,2} & \cdots & p_{i,n} \] ≼ (v₁, v₂, \ldots{}, vᵢ)
|
||||
\item \[ ∀j < i p_{j,1} & p_{j,2} & \cdots & p_{j,n} \] ⋠ (v₁, v₂, \ldots{}, vᵢ)
|
||||
\end{itemize}
|
||||
|
||||
We can define the following three relations with respect to patterns:
|
||||
\begin{itemize}
|
||||
\item Patter p is less precise than pattern q, writtens p ≼ q when all
|
||||
instances of q are instances of p
|
||||
\item Pattern p and q are equivalent, written p ≡ q, when their instances
|
||||
are the same
|
||||
\item Patterns p and q are compatible when they share a common instance
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{1.2.1.1 Initial state of the compilation}
|
||||
\label{sec:org0b0c254}
|
||||
|
||||
Given a source of the following form:
|
||||
|
||||
\#+BEGIN\_SRC ocaml
|
||||
match x with
|
||||
\begin{center}
|
||||
\begin{tabular}{l}
|
||||
p₁ -> e₁\\
|
||||
p₂ -> e₂\\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\ldots{}
|
||||
\begin{center}
|
||||
\begin{tabular}{l}
|
||||
pₘ -> eₘ\\
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\#+END\_SRC ocaml
|
||||
|
||||
the initial input of the algorithm consists of a vector of variables
|
||||
\vv{x} = (x₁, x₂, \ldots{}, xₙ) of size n
|
||||
and a clause matrix P → L of width n and height m.
|
||||
|
||||
\begin{equation*}
|
||||
(P → L) =
|
||||
\begin{pmatrix}
|
||||
p_{1,1} & p_{1,2} & \cdots & p_{1,n} → l₁ \\
|
||||
p_{2,1} & p_{2,2} & \cdots & p_{2,n} → l₂ \\
|
||||
\vdots & \vdots & \ddots \vdots → \vdots \\
|
||||
p_{m,1} & p_{m,2} & \cdots & p_{m,n} → lₘ
|
||||
\end{pmatrix}
|
||||
\end{equation*}
|
||||
\end{document}
|
|
@ -1,21 +0,0 @@
|
|||
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019 Gentoo Linux) (preloaded format=pdflatex 2020.2.15) 17 FEB 2020 16:31
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**tesi.tex
|
||||
|
||||
! Emergency stop.
|
||||
<*> tesi.tex
|
||||
|
||||
End of file on the terminal!
|
||||
|
||||
|
||||
Here is how much of TeX's memory you used:
|
||||
3 strings out of 494553
|
||||
112 string characters out of 6177841
|
||||
52201 words of memory out of 5000000
|
||||
3775 multiletter control sequences out of 15000+600000
|
||||
3640 words of font info for 14 fonts, out of 8000000 for 9000
|
||||
14 hyphenation exceptions out of 8191
|
||||
0i,0n,0p,11b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
! ==> Fatal error occurred, no output PDF file produced!
|
2519
tesi/unicode-latex.json
Normal file
2519
tesi/unicode-latex.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue