home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / sci / math / symbolic / 2087 < prev    next >
Encoding:
Text File  |  1992-07-27  |  8.8 KB  |  270 lines

  1. Newsgroups: sci.math.symbolic
  2. Path: sparky!uunet!gatech!taco!eos.ncsu.edu!jwb
  3. From: jwb@eos.ncsu.edu (Dr. John W. Baugh Jr.)
  4. Subject: Re: sigma-algebras and probability spaces
  5. Message-ID: <1992Jul27.173945.2147@ncsu.edu>
  6. Sender: news@ncsu.edu (USENET News System)
  7. Reply-To: jwb@eos.ncsu.edu
  8. Organization: North Carolina State University
  9. References: <1992Jul27.074830.27366@iitb.fhg.de> 
  10. Date: Mon, 27 Jul 1992 17:39:45 GMT
  11. Lines: 257
  12.  
  13. Harald Kirsch writes:
  14.  
  15. > Dear Netters,
  16. > I am looking for a sw package that can do symbolic computations in
  17. > $\sigma-$algebras (set theory). In the moment I have access only to
  18. > Maple and it looks like it can not do what I need:
  19.  
  20. Try LP, the Larch Prover.  See the attached announcement and sample lp
  21. file.
  22.  
  23. John Baugh
  24. jwb@eos.ncsu.edu
  25.  
  26. -----
  27.  
  28.                  LP, The Larch Prover
  29.                              --------------------
  30.  
  31.                   Release 2.2
  32.                    November 27, 1991
  33.  
  34.  
  35.      LP [1] is an interactive proof-assistant for a subset of multisorted
  36. first-order logic.  It is designed to work efficiently on large problems and to
  37. be used by relatively naive users.  Among its current uses are analyzing formal
  38. specifications [2], reasoning about concurrent algorithms and hardware designs
  39. [4,5], and proving theorems in algebra [3].
  40.  
  41.      LP's design is based on the assumption that initial attempts to state
  42. conjectures correctly, and then prove them, usually fail.  As a result, LP is
  43. designed to carry out routine (and possibly lengthy) steps in a proof
  44. automatically and to provide useful information about why proofs fail, if and
  45. when they do.  LP is not designed to find difficult proofs automatically;
  46. instead, LP makes it easy for users to employ standard techniques such as
  47. proofs by cases, induction, and contradiction.
  48.  
  49.      LP allows users to axiomatize theories by equations (i.e., quantifier-free
  50. formulas), operator theories (e.g., commutativity), deduction rules (equivalent
  51. to universal-existential formulas), and induction rules.  LP automatically
  52. orients most equations into terminating rewrite rules, which it then uses in
  53. equational term-rewriting to simplify axioms and conjectures.  LP automatically
  54. applies deduction rules to derive consequences from newly asserted, simplified,
  55. or proved equations and rewrite rules.
  56.  
  57.      LP can be obtained by anonymous ftp from larch.lcs.mit.edu (18.26.0.95).
  58. You should use a dialog such as
  59.      csh>>ftp larch.lcs.mit.edu
  60.      Name: anonymous
  61.      Password: <your name and location>
  62.      ftp> cd pub/lp
  63.      ftp> binary
  64.      ftp> get lp2.2.lib.tar.Z
  65.      ftp> get lp2.2.decmips.Z
  66.      ftp> quit
  67. to get the file lp2.2.lib.tar.Z (~420K), which contains documentation and a
  68. runtime library for LP, together with one of the following compressed
  69. executable versions of LP:
  70.      lp2.2.decmips.Z    for DEC/MIPS 3100 or 5000 workstations (~1.1 meg)
  71.      lp2.2.mips.Z    for MIPS workstations (~1.1 meg)
  72.      lp2.2.sparc.Z    for Sun Sparcstations (~1.4 meg)
  73.      lp2.2.sun3.Z    for Sun-3 workstations under Sun Unix 4.3 (~260K)
  74.      lp2.2.vax.Z    for DEC VAX computers under Berkeley Unix 4.3 with NFS
  75.             or a compatible version of Unix such as Ultrix (~260K)
  76. To install LP, uncompress the executable file and install it as lp in
  77. /usr/local/bin (or in any other directory on your search path).  Also, install
  78. LP's runtime library by typing the following commands:
  79.      uncompress lp.2.2.lib.tar.Z
  80.      mkdir /usr/local/lib/lp
  81.      mv lp.2.2.lib.tar.Z /usr/local/lib/lp
  82.      cd /usr/local/lib/lp
  83.      tar xf lp.2.2.lib.tar
  84. If you cannot create /usr/local/lib/lp, you can install LP's runtime library in
  85. some other directory and alias the the command "lp" to "lp -d directory-name".
  86.  
  87.      To run LP on some other machine (e.g., a Sony or Hewlett-Packard
  88. workstation), or under some other operating system (e.g., Berkeley 4.2 Unix or
  89. Berkeley 4.3 Unix without NFS), you should get the compressed tar file
  90. lp2.2.code.tar.Z (~535K) containing source code, as well as lp2.2.lib.tar.Z,
  91. and compile your own executables.
  92.  
  93.      To compile LP, you will need a CLU compiler and runtime system.  For VAX
  94. and 68000 based architectures, these are available by anonymous ftp from
  95. pion.lcs.mit.edu (18.26.0.64) in the directory pub/clu.  For other
  96. architectures, such as the DEC/MIPS workstations and Sun Sparcstations, a
  97. portable CLU compiler is available by anonymous ftp from mintaka.lcs.mit.edu
  98. (18.26.0.36) in the directory pub/pclu.  If you use this implementation of CLU,
  99. which translates CLU sources into C, you may also want to get the compressed
  100. tar file lp2.2.c.tar.Z containing the C translations of the CLU sources
  101. (getting these files saves the time required for retranslation).  See the file
  102. INSTALLING in the distribution for information about compiling LP and about
  103. overcoming installation problems.
  104.  
  105.      No license is required for using LP.  The file COPYRIGHT in the
  106. distribution contains further information about using and redistributing LP.
  107.  
  108.      If you have problems with this distribution, or if you find bugs in LP,
  109. please contact
  110.      Stephen Garland
  111.      MIT Laboratory for Computer Science
  112.      545 Technology Square
  113.      Cambridge, MA  02139
  114. or send network mail to garland@larch.lcs.mit.edu.  If you decide to become a
  115. user of LP, please send us mail at the above address, both so that we know who
  116. our users are and so that we can mail you announcements of workshops, new
  117. releases, and bug fixes.
  118.  
  119.  
  120. References
  121. ----------
  122.  
  123. [1] S. J. Garland and J. V. Guttag.  A Guide to LP, The Larch Prover.  MIT 
  124.     Laboratory for Computer Science, December 1991.  Also available from DEC 
  125.     Systems Research Center, 130 Lytton Avenue, Palo Alto, CA 94301, as Report 
  126.     82.  A PostScript file containing this report is part of the distribution.
  127.  
  128. [2] S. J. Garland, J. V. Guttag, and J. J. Horning. "Debugging Larch Shared
  129.     Language specifications," IEEE Transactions on Software Engineering 16:9
  130.     (September 1990), pp. 1044-1057.  Also available as DEC Systems Research 
  131.     Center Report 60 (July 1990).
  132.  
  133. [3] U. Martin and M. Lai, "Some experiments with a completion theorem prover,"
  134.     Journal of Symbolic Computation, to appear, 1991.
  135.  
  136. [4] J. B. Saxe, S. J. Garland, J. V. Guttag, and J. J. Horning, "Using
  137.     transformations and verification in circuit design," DEC Systems Research
  138.     Center Report 78, September 1991.
  139.  
  140. [5] J. Staunstrup, S. J. Garland, and J. V. Guttag.  "Localized verification of
  141.     circuit descriptions," Proc. Int. Workshop on Automatic Verification
  142.     Methods for Finite State Systems, Grenoble, France, Lecture Notes in 
  143.     Computer Science 407, Springer-Verlag, 1989, pp. 349-364.
  144.  
  145. -----
  146.  
  147. % Proofs by induction of some properties of sets
  148.  
  149. clear
  150. set log set
  151. set script set
  152. set trace 0
  153.  
  154. set name set
  155.  
  156. declare sorts Elem, Set
  157. declare variables e, e': Elem, x, y, z: Set
  158. declare operators
  159.   empty:               -> Set
  160.   insert:    Elem, Set -> Set
  161.   singleton: Elem      -> Set
  162.   \union:    Set, Set  -> Set
  163.   \in:       Elem, Set -> Bool
  164.   \subset:   Set, Set  -> Bool
  165.   ..
  166.  
  167.  
  168. % Axioms
  169.  
  170. assert Set generated by empty, insert
  171. assert Set partitioned by \in
  172. assert ac \union
  173.  
  174. assert
  175.   singleton(e) == insert(e, empty)
  176.   empty \union x == x
  177.   insert(e, x) \union y == insert(e, x \union y)
  178.   not(e \in empty)
  179.   e \in insert(e', x) == e = e' | e \in x
  180.   empty \subset x
  181.   insert(e, x) \subset y == e \in y & x \subset y
  182.   ..
  183.  
  184.  
  185. % Theorems about union
  186.  
  187. set name theorem
  188.  
  189. prove e \in (x \union y) == e \in x | e \in y by induction on x
  190.   qed
  191.  
  192. prove x == x \union x
  193.   instantiate s1 by x, s2 by x \union x in deduction-rule
  194.   qed
  195.  
  196. prove x == x \union empty
  197.   instantiate s1 by x, s2 by x \union empty in deduction-rule
  198.   qed
  199.  
  200.  
  201.  
  202. % Theorems about insert
  203.  
  204. prove insert(e, insert(e, x)) == insert(e, x)
  205.   instantiate 
  206.     s1 by insert(e', insert(e', x)), 
  207.     s2 by insert(e', x) 
  208.     in deduction-rule
  209.     ..
  210.   qed
  211.  
  212. prove insert(e, x) == x \union singleton(e)
  213.   qed
  214.  
  215.  
  216.  
  217. % Theorems about subset
  218.  
  219. prove (e \in x & x \subset y) => e \in y by induction on x
  220.   resume by =>
  221.     resume by case ec = e1c
  222.     % Fast way to finish proof: instantiate e by ec, y by yc in inductHyp
  223.     set immunity on
  224.     critical-pairs *InductHyp with *ImpliesHyp
  225.     set immunity off
  226.     make nonimmune theorem
  227.     critical-pairs *ImpliesHyp with theorem
  228.     qed
  229.  
  230. prove insert(e, x) \subset y == e \in y & x \subset y
  231.   qed
  232.  
  233. prove singleton(e) \subset x == e \in x
  234.   qed
  235.  
  236. prove (x \union y) \subset z == x \subset z & y \subset z by induction on x
  237.   qed
  238.  
  239.  
  240. % Alternate induction rule
  241.  
  242. set name inductionRule
  243.  
  244. prove set generated by empty, singleton, \union
  245.   resume by induction
  246.   set name lemma
  247.   critical-pairs *GenHyp with *GenHyp
  248.   critical-pairs *InductHyp with lemma
  249.   qed
  250.  
  251. set name theorem
  252.  
  253. prove x \subset (x \union y) by induction on x using inductionRule
  254.   qed
  255.  
  256. prove x \subset x by induction using inductionRule
  257.   qed
  258.  
  259. prove (x \subset y & y \subset z) => x \subset z
  260.   resume by induction on x using inductionRule
  261.     resume by =>
  262.       critical-pairs *Hyp with *
  263.   qed
  264.  
  265.  
  266.  
  267. display
  268. statistics
  269.