structure.md
March 20, 2020 ยท View on GitHub
Structure of directories and files
-
doc/: documentationDOCUMENTATION.md: entry point of the documentation, each topic being developed in a.mdfile of thedoc/sectionsdirectoryPERFS.md: a comparison of performances of Dedukti 2.6 and Lambdapisyntax.bnf: BNF grammar of Lambdapi
-
editors/: editor plugins for handling Lambdapi files-
emacs/: code for emacs -
vim/: code for vim -
vscode/: code for vscode.vscode/*.json: config for launching, debugging, building the extensionsrc/*.ts: the VSCode plugin source code written in the TypeScript languagepackage.json: the manifest of the plugin (activation events, scripts, dependencies, ...)tsconfig.json: TypeScript configuration (directories, ...)vscode.proposed.d.ts: VSCode API (Microsoft file, likely to change)lp.configuration.json: specific characterssyntaxes/lp.tmLanguage.json: grammar of lambdapiMakefile.gitignore
-
-
libraries/: libraries of Dedukti files (see GNUmakefile) -
lp-lsp/: source code of the Lambdapi LSP server (see https://microsoft.github.io/language-server-protocol/ and https://langserver.org/) -
src/core: source code of Lambdapi-
utilities:
extra.ml: standard library extensionfiles.ml: filenames and paths managementpos.ml: source file position managementconsole.ml: output and debuggingexternal.ml: call to external toolshrs.ml: export to the .hrs format of the confluence competitionxtc.ml: export to the .xtc format of the termination competitionconfig.ml: handling of configuration filesstubs.c: C implementation forExtra.Filename.realpath.
-
file, command and tactic handling:
compile.ml: file parsing and compiling (.lpo files)handle.ml: command handlingqueries.ml: handling of queries (commands that do not change the signature or the proof state)tactics.ml: tactic handlingrewrite.ml: rewrite tactic (similar to Ssreflect)why3_tactic.ml: why3 tactic (uses why3)proof.ml: proof state
-
terms, signatures, rewriting, unification and type-checking:
terms.ml: internal representation of termsbasics.ml: basic operations on termsprint.ml: pretty printing of termstree_types.ml: types and basic functions for decision treestree.ml: compilation of rewriting rules to decision treestree_graphviz.ml: representation of trees as graphviz fileseval.ml: rewriting engineunif.ml: unification algorithmctxt.ml: typing contexts (maps variable -> type)infer.ml: constraints-generating type inference and checkingtyping.ml: type inference and checkingsign.ml: signatures/theories (sets of symbols and rules)
-
parsing and scoping:
syntax.ml: abstract syntaxparser.ml: parser (convert the concrete syntax into the abstract syntax)env.ml: maps identifier -> variable (and type)scope.ml: convert the abstract syntax into termspretty.ml: pretty print the abstract syntax (used to convert old Dedukti files into Lambdapi files)
-
legacy parser:
legacy_lexer.ml: lexer for the old Dedukti syntaxlegacy_parser.ml: interface of the parser for the old Dedukti syntaxmenhir_parser.ml: parser using menhir
-
property checking:
sr.ml: algorithm for checking subject reduction
-
-
src/pure: pure interface (mainly used by the LSP server)pure.mlandpure.mli: provide utilities to roll back state
-
src/lsp/: files related to the LSP server -
src/lambdapi.ml: main program -
tests/: unit testsOK/: tests that should succeedKO/: tests that should fail
-
lib/: a minimal standard library for Lambdapi. -
tools/:deps.ml: gives the#REQUIREcommands that should be added at the beginning of a Dedukti filegenerate_tests.ml: creates test files intests/OKthat can be parametrisedlistings.tex: setup of the LaTeX package listings for including Lambdapi code into a LaTeX documentsanity_check.sh: script checking some style guidelines below (called bymake sanity_check)gen_version.ml: script used by dune to generate thesrc/core/version.mlfile