| Boyer, R.S., and Moore, J.S. 1972. \The Sharing of Structure in Theorem Proving Programs", In Machine Intelligence, Vol. 7, B. Melzer and D. Michie (eds.), Edinburgh Univ. Press, Edinburgh, UK, pp.101-116. |
....Rewrites a term using the given term pairs as rewrite rules. Assignments are ignored; the environment is used only with genvar, to generate unique Vars as placeholders for bound variables. Remark. To minimize copying, earlier versions of Isabelle used environments throughout; structure sharing [1] was also tried. However, profiling showed that the majority of run time was spent on lookups; also, the code was extremely complicated. Removing environments made Isabelle run 5 times faster. Structure sharing is becoming less popular in Prolog interpreters as well. Environments are represented ....
R. S. Boyer, J S. Moore, The sharing of structure in theorem-proving programs, in: B. Meltzer and D. Michie, editors, Machine Intelligence 7 (Edinburgh University Press, 1972), pages 101--116.
.... presented by [Pereira 85] namely that an initial object together with a list of updates contains the same information as the object that results from applying the updates destructively to the initial object, uses a variant of Boyer and Moore s approach for structure sharing of term structures [Boyer Moore 72] The method uses a skeleton for representing the initial DG that will never change and an environment for representing updates to the skeleton. There are two kinds of updates: rerouiings that forward one DG node to another; arc bindings that add to a node a new arc. Lazy Copying as another ....
R. S. Boyer and J. S. Moore. The sharing of structures in theorem-proving programs. In B. Meltzer and D. Mitchie (eds.), Machine Intelligence 7, pp. 101-116, John Wiley and Sons, New York, New York, 1972.
....by the environment The environment speeds unification by delaying the substitutions. Substitutions can be delayed forever: the environment can be passed from one unification to the next, accumulating ever more assignments. The technique of structure sharing even handles variable renaming [Boyer and Moore 1972]. This technique is used in resolution theorem provers and some Prolog systems. Folderol uses environments only in unification. After a successful unification, it copies out (or instantiates) the entire proof, performing all substitutions indicated in the environment. There are two reasons for ....
Robert S. Boyer and J Strother Moore. The sharing of structure in theorem-proving programs. In B. Meltzer and D. Michie, editors, Machine Intelligence 7, pages 101--116, Edinburgh University Press.
....represents types and the ML type term represents # expressions. Scheme variables are represented by (string,integer) pairs. Each bound variable is also represented by an integer, referring to the depth at which it is bound [4] The environment primitives use Boyer and Moore s structure sharing [3] to standardize variables apart before unification. Normalization, # convertibility, and substitution functions are provided. The # expression parser and printer are extensible. Each can be invoked in mutual recursion with parsing printing functions written for a particular logical syntax. ....
R. S. Boyer, J S. Moore, The sharing of structure in theorem-proving programs, in: B. Meltzer and D. Michie, editors, Machine Intelligence 7 (Edinburgh University Press, 1972), pages 101--116.
.... in the summer of 1987 following discussions of the operational static semantics of modules with Robin Milner, Mads Tofte, and Bob Harper [6,7,12] Like Harper s prototype implementation, the new modules implementation was inspired by the static semantics, but it uses a structure sharing strategy [3,13] to avoid serious performance problems associated with a naive implementation of the static semantics. Although precise comparative measurements are not yet available, our experience shows that the symbol table size for a large ML program such as the ML compiler is several times smaller with the ....
....components carrying the bound stamps and use the rest of the information in a signature as an unchanging template that can be shared by all instances of the signature. This is the familiar structure sharing idea first proposed by Boyer and Moore in the context of resolution theorem proving [3] and later exploited in the implementation of Prolog [13] The use of structure sharing in the basic ML type system has been considered, but in that context it does not appear to have a clear advantage over the simpler approach of instantiation by copying. In the case of signature matching, ....
R.S. Boyer and J Moore, The sharing of structure in theorem-proving programs, Machine Intelligence 7, B. Meltzer and D. Michie, eds., Edinburgh University Press, 1972, 101-116.
....this skeleton is taken directly from the original polymorphic type; there is no need for copying. Since every instance uses the same skeleton, we describe this approach as structure sharing. The same terminology is used for similar purposes, in the implementation of logic programming languages [10]. The second component in the representation of a monomorphic type is an offset into an array of type variables, each of which is a structure of the form: typedef struct Type bound; Skeleton Int offs; Offset Kind kind; Kind Tyvar; This array is described as the current ....
R.S. Boyer and J.S. Moore. The sharing of structure in theorem proving programs. Machine Intelligence, 7, 1972. Edinburgh University Press.
....Otherwise extensive copying would be required, and the cost of an inference would be linear in the size of the fact generated. Even if subterms are shared, extensive copying may be required if a variable in a shared non ground structure is instantiated. Boyer and Moore s structure sharing scheme [BM72] can avoid this copying, but it has other overheads such as the time required to traverse a term. More importantly, it does not help with the next problem that we describe. On the other hand, Prolog uses a tuple at a time backtracking strategy, and hence it can destructively modify variable ....
R. S. Boyer and J. S. Moore. The sharing of structure in theorem-proving programs. Computational Logic, pages 101--116, 1972.
....In partial instantiation, generating the conflict set unifiers is a key step at each node. Thus, the efficiency of the unification algorithm is one of the key factors determining the overall performance of the system. Among the unification algorithms that have been proposed so far (e.g. [7, 19]) we chose to implement the version developed by Martelli and Montanari [19] with a few optimizations. For instance, a key optimization is to keep all the variables appearing in the left hand sides of substitution equations in sorted order. Thus, unifiers can 23 be compared more efficiently. ....
R. Boyer and J. Moore. (1972) The Sharing of Structure in Theorem-proving Programs, Machine Intelligence, 7, pp 101--116.
.... instead of integers to represent transitions and thus obtains a closer correspondence with classical deduction (Smullyan, 1973) Wallen shows how theorem proving tech 8 MATTHEW STONE niques for classical logic, such as matrix proof methods (Andrews, 1981; Bibel, 1982) and structure sharing (Boyer and Moore, 1972), can be applied to Smullyan s system (Wallen, 1990) After further study, these systems can now be regarded as instances of more general techniques of semantics based translation (Ohlbach, 1991) and labeled deductive systems (D Agostino and Gabbay, 1994) These works provide new inference systems ....
Boyer, R. S. and Moore, J. S. (1972). The sharing of structure in theorem-proving programs. In Meltzer, B. and Michie, D., editors, Machine Intelligence 7, pages 101--116. Edinburgh University Press.
....in conventional resolution 5 theorem proving. The simple method is to form resolvents fully by applying the unifying substitution to the parent clauses. This is far more expensive in both time and space than Prolog inference. The second less frequently used method involves structure sharing [6], in which a resolvent is represented by the parents plus the unifying substitution. Whenever the resolvent must be examined (e.g. for printing or resolution with another clause) it is traversed, with variables being implicitly replaced by their substitution values. This is still less efficient ....
Boyer, R.S. and J S. Moore. The sharing of structure in theorem-proving programs. In B. Meltzer and D. Michie (eds.). Machine Intelligence 7. Edinburgh University Press, Edinburgh, Scotland, 1972.
....r, copies of the terms in the sets T 1 and T 2 must be provided which can be manipulated independently in each branch. However, actual copying can be avoided because the common trick of not carrying out variable substitutions but saving them as an environment works here, as well (cf. Boyer Moore [3]) The list of variable renamings which have been produced along a branch constitutes such a binding environment. Then a sequent is represented as a pair consisting of a list of pointers to terms and an environment. The inference rules which affect a pair of terms have to be amended by an ....
R.S. Boyer and J.S. Moore. The sharing of structure in theorem proving programs. Machine Intelligence, 7:101--116, 1972.
....sections we have used a representation of structures known as structure copying. This technique was introduced by Maurice Bruynooghe [Bru82] and Christopher Mellish [Mel82] Structure copying is now the standard implementation method because it is faster than the previously used structure sharing [BM72]. In general, structure copying also consumes less memory than structure sharing [Mel82] Structure sharing is based on the assumption that a large part of a structure is constant and contains only few variables. A structure is here divided into the constant, part called skeleton, and a variable ....
Roger S. Boyer and Jay S. Moore. The sharing of structure in theorem proving programs. In Melzer B. and Michie D., editors, Machine Intelligence 7. Edinburgh University Press, New York, 1972.
.... presented by [Pereira 85] namely that an initial object together with a list of updates contains the same information as the object that results from applying the updates destructively to the initial object, uses a variant of Boyer and Moore s approach for structure sharing of term structures [Boyer Moore 72] The method uses a skeleton for representing the initial DG that will never change and an environment for representing updates to the skeleton. There are two kinds of updates: reroutings that forward one DG node to another; arc bindings that add to a node a new arc. Lazy Copying as another ....
R. S. Boyer and J. S. Moore. The sharing of structures in theorem-proving programs. In B. Meltzer and D. Mitchie (eds.), Machine Intelligence 7, pp. 101--116, John Wiley and Sons, New York, New York, 1972.
....the execution of the goal use(W) although they are useless for the rest of the computation. 3. 2 Structure sharing versus term copying Mimicking the implementation of other languages, the first implementations of logic programming languages used classical Boyer and Moore s structure sharing [13] to represent goals and terms. It is a well known technique which represents a term with a pair of pointers, one to a static model in the program and the other to a dynamic environment which gives the values of variables. This is a static sharing, which uses pieces of program to represent ....
R.S. Boyer and J.S. Moore. The sharing of structure in theorem-proving programs. In B. Meltzer and D. Mitchie, editors, Machine Intelligence, pages 101--116, Edinburgh University Press, 1972.
.... in the summer of 1987 following discussions of the operational static semantics of modules with Robin Milner, Mads Tofte, and Bob Harper [6,7,12] Like Harper s prototype implementation, the new modules implementation was inspired by the static semantics, but it uses a structure sharing strategy [3,13] to avoid serious performance problems associated with a naive implementation of the static semantics. Although precise comparative measurements are not yet available, our experience shows that the symbol table size for a large ML program such as the ML compiler is several times smaller with the ....
....components carrying the bound stamps and use the rest of the information in a signature as an unchanging template that can be shared by all instances of the signature. This is the familiar structure sharing idea first proposed by Boyer and Moore in the context of resolution theorem proving [3] and later exploited in the implementation of Prolog [13] The use of structure sharing in the basic ML type system has been considered, but in that context it does not appear to have a clear advantage over the simpler approach of instantiation by copying. In the case of signature matching, ....
R. S. Boyer and J Moore, The sharing of structure in theorem-proving programs, Machine Intelligence 7, B. Meltzer and D. Michie, eds., Edinburgh University Press, 1972, 101-116.
....an experimental LI Engine simulator in C. The simulator adopts completely the same control algorithm as presented in the previous section, except that the basic cache operations are simulated by data structures in the main memory. Our current unification algorithm uses the structure sharing method[15]. There is no special reason for choosing structure sharing instead of structure copying. The simulator implements the full history saving and full unification because the main purpose of the simulator is to examine the potential of the post choice scheme. The whole LI Engine (control and ....
R. Boyer and J. Moore. The Sharing of Structure in Theorem Proving Programs. Machine Intelligence 7, Edited by B. Meltzer and D. Miche, 101-116, 1972.
....merging two environments and perhaps renaming to avoid variable name clashes. Although the necessity of a structure sharing framework appears inevitable, no satisfactory implementation that copes with the join and renaming operation has been proposed. For instance, Boyer and Moore s framework [BM72] suffers from large time overhead and Pereira s framework [Per85] does not address the renaming problem. We have encountered these various problems during the development of our Dynamic Programming evaluator of Logic Programs : DyALog [VdlC90] To solve them, we have developed a structure sharing ....
....The second solution to the renaming problem is to add context information to the variable identifiers in the form of keys to differentiate them. Binding access now depends on keys : we call this contextual. This solution is used in the foundation paper on Structure Sharing for Logic Programming[BM72]. The authors use integers as keys and environments are just lists of bindings of the form X Pik 7 s Pik 0 where k and k 0 are keys. Such a binding will only work for a variable X with key k and will return term s with key k 04 . Unfortunately, variable access is too slow to make Boyer and ....
R. S. Boyer and J. S. Moore. The sharing of structure in theorem--proving programs. In Machine Intelligence, chapter 7, pages 101--116. John Wiley and Sons, New York, 1972.
....problem. We also investigate a new strategy on the general case of the problem. Pugh [8] states that the theoretical properties of lazy structure sharing are not well understood. Indeed, while lazy structure sharing has been used to implement unification of first order terms [3] theorem provers [2, 6], and computational linguistics applications [4, 5, 7] almost all of these works provide only empirical (if any) observations about its effects. Only Cordin and Bidoit [3] provide any asymptotic analysis of the effect of lazy structure sharing; they consider a variant similar to our total order ....
R. S. Boyer and J. S. Moore. The sharing of structure in theorem-proving programs. Machine Intelligence, 7:101--16, 1972.
....lists, this program runs in O(n) time, where n is the size of the lists to be appended. If the query uses non ground lists, and the program is evaluated without any special optimizations for non ground terms, the evaluation takes O(n 2 ) time. The structure sharing scheme of Boyer and Moore [14] addresses the first three problems. The idea is to maintain binding environments with terms, and note variable bindings there; this also makes sharing subterms easier. A somewhat complicated naming scheme helps rename all variables in a term in constant time. However, in the worst case, the cost ....
R. S. Boyer and J. S. Moore. The sharing of structure in theorem-proving programs. Computational Logic, pages 101--116, 1972.
....Such methods of ruling out options are vital in allowing a theorem prover to detect failure in one branch of proof search and move on to another. The subformula property also streamlines theorem proving by enabling a variety of methods for improving space usage by structure sharing (Boyer and Moore, 1972). 2.2.2 Structurally Scoped Sequent Calculi A modal proof system that does satisfy the subformula property is shown in Figure 1. This proof system extends the sequent calculus of classical logic with rules governing modal operators; the modal rules are governed by parameters which vary in order ....
Boyer, R. S. and Moore, J. S. (1972). The sharing of structure in theorem-proving programs. In Meltzer, B. and Michie, D., editors, Machine Intelligence 7, pages 101--116. Edinburgh University Press.
....the main memory. CHAPTER 2. BACKGROUND 24 Table 2: General information about the benchmark programs Program Lines Modules Files Description BHut 1258 9 9 Barnes Hut N body problem solver [BH86] translated from C into Standard ML by John Reppy. Boyer 919 4 3 Standard theorem prover benchmark [BM72] translated from the Gabriel benchmark [Gab85] Sieve 1356 4 5 CML implementation of prime number generator written by John Reppy [Rep91] KB Comp 655 1 1 An implementation of the Knuth Bendix completion algorithm, implemented by Gerard Huet, processing some axioms of geometry. Lexgen 1185 5 ....
R. S. Boyer and J Moore. The Sharing of Structure in Theorem-Proving Programs. In B. Meltzer and D. Michie, editors, Machine Intelligence 7. Edinburgh University Press, 1972.
....recent developments that break through its performance barrier. Section 2.5 presents some promising execution models different from the WAM. Prolog systems can be divided into two categories: structure sharing or structure copying. The idea of structure sharing is due to Boyer and Moore [19]. Structure copying was first described by Bruynooghe [21, 22] The distinction is based on how compound terms are December 1993 Digital PRL 1983 1993: The Wonder Years of Sequential Prolog Implementation 3 represented. In a structure sharing representation, all compound terms are represented ....
Roger S. Boyer and Jay S. Moore. The Sharing of Structure in Theorem Proving Programs. In Machine Intelligence 7, pages 101--116, Edinburgh University Press, New York, 1972.
....with the first prototype of a unification algorithm [10] The widest known algorithm is that of Robinson [21, 22] This algorithm has a exponential time complexity. Boyer and Moore s structure sharing algorithm reduced space complexity but time complexity was still as bad as Robinson s [2]. In 1975 Venturini Zilli introduced a marker strategy which reduces time complexity to O(n 2 ) 30] Huet gave a almost linear algorithm for a infinite unification strategy (strategy which need not to check occurrance) 12] Paterson and Wegman introduced the first linear strategy [17] The ....
R.S.Boyer, J.S.Moore. The sharing of structure in theorem-proving programs. Mach.Intell., 7:101-116, 1972.
No context found.
Boyer, R.S., and Moore, J.S. 1972. \The Sharing of Structure in Theorem Proving Programs", In Machine Intelligence, Vol. 7, B. Melzer and D. Michie (eds.), Edinburgh Univ. Press, Edinburgh, UK, pp.101-116.
No context found.
R. S. Boyer and J. S. Moore. The sharing of structure in theorem proving programs. In B. Meltzer and D. Michie, editors, Machine Intelligence 7, pages 101-116. Edinburgh University Press, Edinburgh, Scotland, UK, 1972.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC