Can I specify a partial function in LSL?
Larch Frequently Asked QuestionsTechnically, no; all functions specified in LSL are total (see section 2.14 What is the meaning of an LSL specification?). Thus every operator specified in LSL takes on some value for every combination of arguments. What you can do is to underspecify such an operator, by not specifying what its value is on all arguments. For example, the operator head in the handbook trait List (see [Guttag-Horning93], p. 173) is underspecified in this sense, because no value is specified for head(empty).
Related QuestionsDo I have to specify everything completely in LSL?
Larch Frequently Asked QuestionsNo, you don't have to specify everything completely in LSL. It's a good idea, in fact, to only specify the aspects that are important for what you are doing. For example, if you want to reason about graph data structures, it's best to not (at first, anyway) try to specify the theory of graphs in great detail. Put in what you want, and go with that. (This won't hurt anything, because whatever you need to prove you'll be forced to add eventually.
Related QuestionsDo I need to write an LSL trait to specify something in a BISL?
Larch Frequently Asked QuestionsNo, you don't always have to write an LSL trait to specify something in a BISL, it just seems that way. Seriously, you don't have to write a trait in the following circumstances. You are specifying a procedure and all of the mathematical vocabulary needed is available in existing traits. These traits may come from a handbook (see section 2.23 Where can I find handbooks of LSL traits?), or they may be built-in to your BISL.
Related QuestionsHow do I specify something that is finite or partial?
Larch Frequently Asked QuestionsIn a procedure specification, you would normally use a precondition to limit the acceptable arguments that the procedure can work with. For example, the standard LSL handbook trait Integer (see [Guttag-Horning93], page 163) specifies an unbounded set of integers. Many Larch BISLs use this kind of unbounded set of integers as their model of a programming language's built-in integer type. Suppose that you want to specify an integer discriminant function, say to be implemented in C++.
Related QuestionsWhere can I get a checker for LSL?
Larch Frequently Asked QuestionsYou can get the MIT releases of the LSL checker using the world-wide web, starting at the following URL. http://www.sds.lcs.mit.edu/spd/larch/lsl.html You can also get the MIT release by anonymous ftp from the following URL. ftp://ftp.sds.lcs.mit.edu/pub/Larch/LSL/ Iowa State, the Larch/C++ group has made available later beta releases of the LSL checker that fix problems with its profligate use of space. You can get the sources for Unix and Windows 95 executables from the following URL.
Related QuestionsWhat is the difference between LSL and a Larch BISL?
Larch Frequently Asked QuestionsThe main difference between LSL and a Larch BISL is that in LSL one specifies mathematical theories of the operators that are used in the pre- and postcondition specifications of a Larch BISL. Thus LSL is used to specify mathematical models and auxiliary functions, and the a Larch BISL is used to specify program modules that are to be implemented in some particular programming language.
Related QuestionsWhat is the Larch Shared Language (LSL)?
Larch Frequently Asked QuestionsThe Larch Shared Language (LSL) (see [Guttag-Horning93], Chapter 4, and [Guttag-Horning-Modet90]) is a language for specifying mathematical theories. LSL is a kind of equational algebraic specification language [Guttag75] [Guttag-Horning78] [Goguen-Thatcher-Wagner78] [Ehrig-Mahr85] [Futatsugi-etal85] [Mosses96] [Loeckx-Ehrich-Wolf96]. That is, specifications in LSL mainly consist of first-order equations between terms.
Related QuestionsWhere can I find information on-line about LSL?
Larch Frequently Asked QuestionsBesides this FAQ, the best place to look is probably your own computer system. You should have a manual page for the LSL checker, if it's installed on your system. Try the Unix command man lsl to see it. You should also look for a directory (such as '/usr/larch/LSL') where the installation of LSL is found. In that directory, you will find a subdirectory 'Doc', where there is some documentation on the checker. See section 2.
Related QuestionsWhat are the sections of an LSL trait?
Larch Frequently Asked QuestionsThe sections of an LSL trait are determined by the LSL grammar [Guttag-Horning-Modet90]. (See section 2.3 Where can I get a checker for LSL?, for a more recent grammar, which is found in the file 'Doc/lsl3_1.y', for version 3.1, and 'Doc/lsl3_2.y', for version 3.2.
Related QuestionsWhat is the meaning of an LSL specification?
Larch Frequently Asked QuestionsLSL trait denotes a theory, which is a collection of true formulas (of sort Bool). This theory contains "the trait's assertions, the conventional axioms of first-order logic, everything that follows from them, and nothing else" (see [Guttag-Horning93], p. 37). For a brief introduction to these ideas, see Chapter 2 of [Guttag-Horning93]; for general background on equational logic, see [Ehrig-Mahr85] or [Loeckx-Ehrich-Wolf96].
Related QuestionsWhat pitfalls are there for LSL specifiers?
Larch Frequently Asked QuestionsAccording to Guaspari (posting to the larch-interest mailing list, on March 8, 1995), "the commonest 'purely mathematical' mistakes" in trait definitions occur when one uses structural induction "over constructors that don't freely generate a sort". To understand this, consider his example, which includes the handbook trait Set (see [Guttag-Horning93], page 167).
Related QuestionsCan you give me some tips for specifying things with LSL?
Larch Frequently Asked QuestionsThe first tip helps you write down an algebraic specification of a sort that is intended to be used as an abstract data type (see [Guttag-Horning78], Section 3.4, and [Guttag-Horning93], Section 4.9). The idea is to divide the set of operators of your sort into generators and observers. A constructor returns your sort, while an observer takes your sort in at least one argument and returns some more primitive sort (such as Bool). The tip (quoted from [Guttag-Horning93], p.
Related QuestionsWhere can I find handbooks of LSL traits?
Larch Frequently Asked QuestionsThe most commonly-used handbook of LSL traits is Guttag and Horning's handbook ([Guttag-Horning93], Appendix A). This can be obtained by anonymous ftp with the LSL checker (see section 2.3 Where can I get a checker for LSL?). A hypertext version is on-line in http://www.research.digital.com/SRC/larch/toc.html A general resource for all known handbooks that are publically available is found on the world-wide web, at the following URL. http://www.cs.iastate.edu/~leavens/Handbooks.
Related QuestionsWhere can I find LaTeX or TeX macros for LSL?
Larch Frequently Asked QuestionsYou can get a LaTeX style file, 'larch.sty', and a macro file defining a bunch of mathematical symbols, 'larchmath.tex', by anonymous ftp from the following URL. ftp://ftp.cs.iastate.edu/pub/larch/tex The documentation for 'larch.sty' says that it is to be used with LaTeX 2.09. However, it can be used with LaTeX2e. To do so, put the following lines at the start of your LaTeX input.
Related QuestionsWhat is a partial abdominoplasty?
Los Angeles Tummy Tucks - frequently asked questionsOtherwise known as a mini tummy tuck, partial abdominoplasty is another form of the conventional tummy tuck. The surgery has a smaller cut and the cut around the belly button is not necessary.
Related QuestionsWhen are partial applications due?
FAQs about STAG | US EPAAll proposals and partial grant applications are due by August 23, 2007 (Midnight local time). All applications must be submitted through the EPA Grants Website.
Related QuestionsWhat is a partial application? Where can I find out about it?
FAQs about STAG | US EPAA partial grant application consists of the SF-424 (application for federal assistance) and the SF-424A (budget information). These forms are available on the Grants Management Forms Web site . These should be submitted with the proposals.
Related QuestionsDo you have a good makefile to use with the LSL checker?
Larch Frequently Asked QuestionsThe following makefile shows one way to use the Unix command make to help check LSL traits. It relies on properties of the Bourne shell under Unix and standard Unix make, so it would have to be adjusted to work on other systems. (Also, if you cut and paste this makefile, be sure to change the leading blanks to tab characters on the rule lines.) SHELL = /bin/sh LSL = lsl LSLFLAGS = .SUFFIXES: .lsl .lsl-ckd .lp .lsl.lsl-ckd: $(LSL) $(LSLFLAGS) $< 2>&1 | tee $ .lsl.
Related QuestionsWhat is the purpose of an LSL trait? What is a trait used for?
Larch Frequently Asked QuestionsLSL trait is used to describe a mathematical theory. This could be used by a mathematician to simply formalize a theory, but more commonly the theory specified is intended to be used as the mathematical vocabulary for some BISL. Another common use is as a way of specifying input to the Larch Prover (LP). When used as mathematical vocabulary for some behavioral interface specification, one can identify some other common uses. Quite often one wants to specify the abstract values of some data type.
Related QuestionsHow does LSL handle undefined terms?
Larch Frequently Asked QuestionsThe following answer is adapted from a posting to 'comp.specification.larch' by Horning (July 19, 1995) in response to a question by Leavens (July 18, 1995). The trouble starts with your question: there are no "undefined terms" in LSL. LSL is a language of total functions. There are no partial functions associated with operators, although there may be underspecified operators (i.e., operators bound to functions with different values in different models).
Related QuestionsHow do I write logical quantifiers within an LSL term?
Larch Frequently Asked QuestionsIn LSL 3.1, you can write a universal quantifier within an LSL term by using \A, and an existential quantifier using \E. As an example, consider the following trait (from Leavens's Math handbook).
Related QuestionsIs there a literate programming tool for use with LSL?
Larch Frequently Asked QuestionsYes, there actually is a version of "spiderweb" specialized for use with LSL. If you are really a fan of such fancy systems, you can find it by using the literate programming library's URL. http://www.desy.de/user/projects/LitProg.html However, we have found that using the "noweb" system is much easier for most people, and nearly as good. You can get noweb from the literate programming library (see above), or directly from the following URL. http://www.eecs.harvard.edu/~nr/noweb/intro.
Related QuestionsIs there a tool for converting LSL to hypertext for the web?
Larch Frequently Asked QuestionsYes, Penix's "lsl2html" tool converts an LSL input file to HTML, so it can be browsed over the net. It can be found at the following URL. http://www.ece.uc.edu/~kbse/lsl2html/ Unfortunately, Penix's tool has a few problems that have never been fixed. Instead, you might want to use Leavens's tool "lcpp2html", which is available from the following URL. http://www.cs.iastate.edu/~leavens/lcpp2html.html
Related QuestionsDo I need to use LSL if I use LP?
Larch Frequently Asked QuestionsNo, you do not need to use LSL if you use LP. LP has its own input format (although it is very similar to LSL's input format). So, many users of LP simply bypass LSL, and use LP exclusively. On the other hand, using LSL as an input format to LP has the following advantages. The LSL checker automatically generates proof management commands (scripting and logging) for LP, and helps organize theories and conjectures into files. See section 3.10 How do I use LP to check my LSL traits?.
Related QuestionsWhat is the use of each kind of file generated by the LSL checker?
Larch Frequently Asked QuestionsThe LSL checker, when used with the '-lp' switch on a file named 'Foo.lsl', in general produces three files: 'Foo_Axioms.lp', 'Foo_Checks.lp', and 'Foo_Theorems.lp'. Each of these files is in LP input format, hence the suffix '.lp'. The file 'Foo_Axioms.lp' contains a translation of the trait in 'Foo.lsl', minus the implies section. It is "executed" by LP when LP is executing the translation of some other LSL trait that includes Foo. The file 'Foo_Checks.
Related QuestionsHow can I specify a page that uses the frame function as the top page for my site?
IBM Software - WebSphere Studio Homepage Builder - SupportIn step 7 of the above answer (A5), select the name of the frame-setting page (an HTML file that contains the <FRAMESET> tag). You have specified an incorrect server name, user ID, or password. You might have specified a wrong server --- for example, a server for the Web browser's network connection, or an e-mail server. Check the guide furnished by your provider, and specify the correct server name, user ID, and password of the server that manages Web pages.
Related QuestionsHow much detail can I specify?
FAQmuch as you want! Custom frames are just that, Dave starts with a blank sheet of paper and any or all of the detail is specifiable. Any details not specified at the time of ordering are left to Dave's discretion. If you want your cable guides in a certain position tell Dave. Do not assume that he will put them where you want them just because you "saw it in a photograph." If you want a particular fork crown, say so, and if possible, it will be done.
Related Questionsedit] What about the in-client LSL documentation?
Unofficial Licensing FAQ - Second Life WikiLinden Lab has not made an official policy announcement in regard to this. Informally, however, they have said that they will allow it to be posted to this wiki, so one might assume it is under Creative Commons Attribution-Share Alike 2.5 also.
Related QuestionsWhat is permanent partial disability?
Frequently Asked QuestionsTotal loss or partial loss of use of a member of the body or inability to earn the same wages in any employment as earned at the time of injury.
Related Questions