-
Notifications
You must be signed in to change notification settings - Fork 0
clf/llf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
LLF Copyright (C) 1997, 1998, Iliano Cervesato, Frank Pfenning, and Carsten Schuermann Authors: Frank Pfenning Iliano Cervesato Carsten Schuermann Jeff Polakow LLF is an implementation of - the LLF linear logical framework, including type reconstruction - the LLF constraint linear logic programming language ====================================================================== Files: NOTES --- remarks and todo list, most recent notes are at the top README --- this file, including some instructions for compilation TAGS --- tags file, for use in Emacs TEST/ --- test files, try use "TEST/all.sml"; sources.cm --- enables CM.make (); load.sml --- enables use "load.sml"; (* especially for MLWorks *) bin/ --- utility scripts java/ --- postprocessing Java modules ====================================================================== Standard ML, Revision of 1997: If it is not installed already, please check SML of New Jersey [free] http://cm.bell-labs.com/cm/cs/what/smlnj/index.html (version 110 or higher) MLWorks [commercial, "personal version" free] http://www.harlequin.com/products/ads/ml/ -------------------- Loading LLF: Connect to LLF root directory Start SML/NJ 110 or MLWorks CM.make (); (* in SML/NJ 110, sml-cm *) OR use "load.sml"; (* in SML/NJ 110, sml or MLWorks *) To define configuration <example> use "examples/<example>/config.sml"; (* define configuration *) To load files and start top-level for queries (note that you have to replace `-' (dash) by `_' (underscore) in the name of the <example> in order to conform to the lexical conventions of ML). LLF.readConfig <example> LLF.top (); To compile files and read queries (see below for format) LLF.compileConfig <example> LLF.readFile "examples/<example>/examples.quy"; -------------------------------------------------- Current Examples (see examples/README for information) ccc church-rosser compile cut-elim lp lp-horn (meta-theory only) mini-ml polylam prop-calc units -------------------- Query Format for Files: %query <expected> <try> A. where <expected> is the expected number of answers or * (for infinity), and <try> is the bound on the number of tries or * (for infinity), and A is the goal type. Formats M : A or c = M : A are currently not supported for queries. -------------------- Flags (with defaults): Global.chatter := 3; (* chatter levels: 0 = nothing, 1 = files, 2 = number of query solutions, 3 = entries in external form, 4 = entries in internal form, 5 = debugging I, 6 = debugging II *) TpRecon.doubleCheck := false; (* re-check entries after reconstruction *) (* for external format printing *) EPrint.printDepth := NONE; (* SOME(d): replace level n expressions by '%%' *) EPrint.printLength := NONE; (* SOME(l): replace lists longer than l by '...' *) (* for internal format printing *) IPrint.printDepth := NONE; (* SOME(d): replace level n expressions by '%%' *) IPrint.printLength := NONE; (* SOME(l): replace lists longer than l by '...' *) Formatter.Indent := 3; (* number of spaces for indentation level *) Formatter.PageWidth := 80; (* default page width for formatting *) (* see formatter/formatter.sig for more *) -------------------- Timing: Timers.show (); (* show internal timers and reset *) Timers.reset (); (* reset internal timers *) Timers.check (); (* check internal timers, but do not reset *) Currently, the timing information for the solver includes the time taken by the success continuation. This is non-trivial if the success continuation prints the answer substitution, but negligible otherwise. -------------------- Generate the file load.sml for MLWorks or SML w/o the Compilation Manager with CM.mkusefile "load.sml"; (* for core and meta-prover *) CM.mkusefile' ("meta.cm", "load-meta.sml"); (* for core *) CM.mkusefile' ("core.cm", "load-core.sml"); (* for meta-prover *) Make sure the current working directory is the root file of the implementation. To run MLWorks, use Andrew SparcStation (telnet sun4.andrew) and invoke /afs/andrew/scs/cs/mlworks/ultra/bin/mlworks-basis possibly using -tty option. -------------------- Create TAGS file with bin/tag-twelf -------------------- In SMLofNJ: SMLofNJ.Internals.GC.messages Compiler.Control.Print.printDepth := 100; (* default: 5 *) Compiler.Control.Print.printLength := 80; (* default: 12 *) Compiler.Control.Print.signatures := 1; (* default: 2 *) Compiler.Control.Print.linewidth := 79; Compiler.Control.Print.stringDepth := 200; (* default: 70 *) OS.FileSys.chDir "directory"; OS.FileSys.getDir (); -------------------- Profiling (under MLWorks): In each examples directory there is a file config.sml, defining a configuration with the name of the example (where hyphens are replaced by underscore). Typical session: use "examples/church-rosser/config.sml"; LLF.readConfig church_rosser; For the last expression, hit the "Profile" button in the interactive system. Also, don't forget to set Preferences>Compilers> so that profiling is enabled BEFORE using "load.sml"; -------------------- For "release": (* Compiler.Control.indexing := true; *) (* doesn't work right now *) bin/clean bin/clean-cm bin/tag-twelf cd .. tar -cvf llf.tar llf gzip llf.tar -------------------- Installation: gunzip llf.tar.gz tar -xvf llf.tar cd llf sml-cm (* requires version 110! *) CM.make ();
About
Original LLF implementation (typechecher + operational semantics) from 1997
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published