1Fri Dec  5 11:25:01 1997  Steven Eker  <eker@lilac.csl.sri.com>
2
3	* A_Symbol.cc (finalizeSortInfo): deleted
4
5	* A_Symbol.hh (class A_Symbol): deleted finalizeSortInfo() decl
6
7Thu Dec  4 12:54:26 1997  Steven Eker  <eker@lilac.csl.sri.com>
8
9	* A_Symbol.cc (A_Symbol): deleted inert arg
10
11	* A_Symbol.hh (class A_Symbol): deleted inert arg from ctor decl
12
13Tue Dec  2 16:41:48 1997  Steven Eker  <eker@lilac.csl.sri.com>
14
15	* A_Symbol.cc (copyAndReduceSubterms): use DagNode::copyAndReduce()
16
17Mon Dec  1 12:11:25 1997  Steven Eker  <eker@lilac.csl.sri.com>
18
19	* A_Symbol.cc (eqRewrite): use getPermuteStrategy()
20
21	* A_GreedyMatcher.cc (greedyMatchVariableBlock): PermuteSymbol ->
22	AssociativeSymbol (*3)
23
24	* A_DagNode.cc (copyEagerUptoReduced2): use getPermuteStrategy();
25	PermuteSymbol -> BinarySymbol
26
27	* A_LhsCompiler.cc (compileLhs): PermuteSymbol -> AssociativeSymbol
28
29	* A_Term.cc (findEagerVariables): use getPermuteStrategy();
30	PermuteSymbol -> BinarySymbol (*3)
31	(markEagerArguments): use getPermuteStrategy();
32	PermuteSymbol -> BinarySymbol
33
34	* A_LhsAutomaton.hh (class A_LhsAutomaton): PermuteSymbol ->
35	AssociativeSymbol
36
37	* A_Symbol.cc (A_Symbol): PermuteSymbol -> AssociativeSymbol
38	(eqRewrite): remove PermuteSymbol context (*3)
39
40	* A_Symbol.hh (class A_Symbol): PermuteSymbol -> AssociativeSymbol
41
42Tue Nov 25 11:58:40 1997  Steven Eker  <eker@lilac.csl.sri.com>
43
44	* A_RhsAutomaton.cc (buildAliens): deleted
45	(dump): implemented
46
47	* A_RhsAutomaton.hh (class A_RhsAutomaton): updated dump() decl;
48	deleted addAlien(), buildAliens() decls; deleted aliens data
49	member
50	(addAlien): deleted
51
52	* A_LhsAutomaton.cc (dump): updated
53
54	* A_LhsAutomaton.hh (class A_LhsAutomaton): updated dump() decl
55
56===============================Engine33===================================================
57
58Tue Nov 11 17:04:26 1997  Steven Eker  <eker@lilac.csl.sri.com>
59
60	* A_LhsAutomaton.cc (forcedLoneVariableCase): fixed long standing
61	bug; in lone variable bound case if b->symbol() != topSymbol then
62	we need to check for nrSubjects != 1 to return false and not
63	nrSubjects == 1
64
65===============================Engine31===================================================
66
67Wed Oct 29 15:35:35 1997  Steven Eker  <eker@lilac.csl.sri.com>
68
69	* A_Subproblem.cc (solveVariableBlocks): setWholeFlag() ->
70	setMatchedWhole()
71
72	* A_DagNode.cc (matchVariableWithExtension): call setValidAfterMatch(false)
73
74	* A_GreedyMatcher.cc (greedyMatch): setWholeFlag() ->
75	setMatchedWhole() (7 places)
76	(greedyMatch): call setValidAfterMatch(true) if there is extension
77	info
78
79	* A_FullMatcher.cc (fullMatch): call setValidAfterMatch(false) if
80	there is extension information
81
82	* A_LhsAutomaton.cc (match): move matchAtTop == (extensionInfo !=
83	0) assertion to after check of top symbol since caller need not know
84	that we can't collapse and could fail to pass us extensionInfo if
85	subject was in a theory without extension.
86
87	* A_ExtensionInfo.cc (copy): use setValidAfterMatch(),
88	validAfterMatch() and setMatchedWhole()
89	(makeClone): use setValidAfterMatch(), validAfterMatch() and
90	setMatchedWhole()
91
92Mon Oct 27 11:54:51 1997  Steven Eker  <eker@lilac.csl.sri.com>
93
94	* A_ExtensionInfo.cc (makeClone): added
95	(copy): added
96
97	* A_ExtensionInfo.hh (class A_ExtensionInfo): added decls for
98	makeClone() and copy()
99	(class A_ExtensionInfo): subject made non const in order to do copy
100
101Fri Oct 24 14:59:25 1997  Steven Eker  <eker@lilac.csl.sri.com>
102
103	* A_Symbol.cc (ruleRewrite): use new A_ExtensionInfo ctor
104	(eqRewrite): use new A_ExtensionInfo ctor (3 places)
105
106	* A_DagNode.cc (makeExtensionInfo): use new A_ExtensionInfo ctor
107
108	* A_DagNode.hh (class A_DagNode): class A_ExtensionInfo is now a friend
109
110	* A_Theory.cc: deleted
111
112	* A_ExtensionInfo.cc: created
113
114	* A_ExtensionInfo.hh (class A_ExtensionInfo): added data member
115	subject and decls for explicit ctor and buildMatchedPortion()
116	(A_ExtensionInfo): added
117
118Tue Oct 21 12:32:51 1997  Steven Eker  <eker@lilac.csl.sri.com>
119
120	* A_Term.cc (dagify2): switched to new convention
121
122	* A_Term.hh (class A_Term): switched dagify2() decl to new convention
123
124Wed Oct 15 16:12:36 1997  Steven Eker  <eker@lilac.csl.sri.com>
125
126	* A_LhsCompiler.cc (compileLhs): use VariableTerm::dynamicCast()
127	(2 places)
128	(addFixedLengthBlock): use VariableTerm::dynamicCast()
129	(findConstraintPropagationSequence): use
130	VariableTerm::dynamicCast() (2 places)
131
132	* A_Term.cc (compileRhs): use VariableTerm::dynamicCast()
133
134	* A_Symbol.cc (A_Symbol): rewritten for new symbol conventions
135
136	* A_Symbol.hh (class A_Symbol): removed constructor arg from ctor
137
138Fri Oct 10 18:42:16 1997  Steven Eker  <eker@lilac.csl.sri.com>
139
140	* A_LhsAutomaton.hh (class A_LhsAutomaton): VariableIndex -> VariableInfo
141
142	* A_LhsAutomaton.cc (dump): VariableIndex -> VariableInfo
143	(dump): index2Symbol() -> index2Variable()
144
145===============================Engine30===================================================
146
147Tue Oct  7 15:38:16 1997  Steven Eker  <eker@lilac.csl.sri.com>
148
149	* A_Symbol.cc (makeDagNode): added
150
151	* A_Symbol.hh (class A_Symbol): added decl for makeDagNode()
152
153Fri Oct  3 19:35:02 1997  Steven Eker  <eker@lilac.csl.sri.com>
154
155	* A_Term.cc (compileRhs): DataSet -> TermSet
156	(dagify2): DataSet -> TermSet
157
158	* A_Term.hh (class A_Term): DataSet -> TermSet
159
160===============================Engine29===================================================
161
162Thu Oct  2 18:01:02 1997  Steven Eker  <eker@lilac.csl.sri.com>
163
164	* A_Term.hh (class A_Term): updated compileRhs() decl
165
166	* A_Term.cc (compileRhs): adapted to use DataSet& compiled
167
168Tue Sep 30 12:39:29 1997  Steven Eker  <eker@lilac.csl.sri.com>
169
170	* A_Term.hh (class A_Term): dagify() decl chaged to dagify2()
171
172	* A_Term.cc (normalize): now calculate hash value
173	(dagify2): adapted from dagify()
174
175Thu Sep 25 16:49:08 1997  Steven Eker  <eker@lilac.csl.sri.com>
176
177	* A_Symbol.hh (class A_Symbol): deleted decl for specificRewrite()
178
179	* A_Symbol.cc (specificRewrite): deleted
180
181===============================Engine28===================================================
182
183Tue Aug 19 12:37:48 1997  Steven Eker  <eker@lilac.csl.sri.com>
184
185	* A_DagNode.hh (getArgument): added
186	(nrArgs): added
187	(class A_DagNode): added nrArgs() and getArgument() decls as fast
188	theory specific interface to argument list for code outside the
189	A_Theory that is A_Theory aware (maybe classes derived from A_Symbol).
190
191Fri Jul 25 18:02:05 1997  Steven Eker  <eker@lilac.csl.sri.com>
192
193	* A_DagNode.cc (partialReplace): removed Assert(getSortIndex() ==
194	Sort::SORT_UNKNOWN, cerr << "shouldn't have valid sort"); since if
195	node was original created by matcher it may well have valid sort
196
197
198Thu Jul 24 11:39:15 1997  Steven Eker  <eker@lilac.csl.sri.com>
199
200	* A_Symbol.cc (eqRewrite): added normalizeAtTop() calls after
201	sort computation for LAZY and SEMI_EAGER cases; this fixes a bug
202	introduced by just-in-time normalization
203
204Wed Jul 23 11:46:25 1997  Steven Eker  <eker@lilac.csl.sri.com>
205
206	* A_DagNode.cc (partialReplace): added call to repudiateSortInfo()
207
208	* A_Term.cc (normalize): added full flag; only do flattening if
209	full flag true
210
211	* A_Term.hh (class A_Term): added full flag to normalize()
212
213Mon Jul 21 11:27:59 1997  Steven Eker  <eker@lilac.csl.sri.com>
214
215	* A_Symbol.cc (computeTrueSort): do normalization
216
217	* A_DagNode.cc (partialReplace): simplified; no longer normalize
218	(partialConstruct): simplified; no longer normalize
219	(copyWithReplacement): simplified; no longer normalize
220	(partialReplace): put in Assert to ensure we don't have a valid sort
221
222	* A_RhsAutomaton.hh (class A_RhsAutomaton): updated buildAliens() decl
223
224	* A_RhsAutomaton.cc (buildAliens): simplified; no longer do
225	flattening calcs
226	(buildArguments): simplified; no longer flatten
227	(replace): simplified
228	(construct): simplified
229
230===============================Engine26b===================================================
231
232Tue Jul 15 15:42:42 1997  Steven Eker  <eker@lilac.csl.sri.com>
233
234	* A_Symbol.cc (A_Symbol): added inert arg
235	(eqRewrite): changed inert() call to equationFree()
236
237	* A_Symbol.hh (class A_Symbol): added inert arg to ctor
238
239================================Engine26====================================================
240
241Fri Jun 27 16:13:40 1997  Steven Eker  <eker@lilac.csl.sri.com>
242
243	* A_DagNode.hh (class A_DagNode): copyEagerUptoReduced2() and
244	clearCopyPointers2() made private
245
246	* A_Symbol.cc (copyAndReduceSubterms): copyEagerUptoReduced() and
247	clearCopyPointers() replaced by copyReducible()
248
249Wed Jun 25 15:16:51 1997  Steven Eker  <eker@lilac.csl.sri.com>
250
251	* A_Symbol.cc: added #include "variable.hh"
252
253Tue Jun 24 16:22:21 1997  Steven Eker  <eker@lilac.csl.sri.com>
254
255	* A_LhsAutomaton.hh (class A_LhsAutomaton): Variable* ->
256	VariableTerm* for addRigidVariable() and addFlexVariable() decls
257
258	* A_LhsAutomaton.cc (addRigidVariable): use VariableTerm*
259	(addFlexVariable): use VariableTerm*
260
261	* A_LhsCompiler.cc (analyseConstraintPropagation): use VariableTerm::downCast()
262	(compileLhs): use VariableTerm::downCast()
263	(addFixedLengthBlock): use VariableTerm::downCast()
264	(findConstraintPropagationSequence): use VariableTerm::downCast()
265
266	* A_Term.cc: added #include "variableTerm.hh"
267	(compileRhs): use VariableTerm::downCast()
268
269Thu Jun 19 10:38:43 1997  Steven Eker  <eker@lilac.csl.sri.com>
270
271	* A_Symbol.cc: deleted #include "unionFind.hh"
272
273Tue Jun 17 16:55:43 1997  Steven Eker  <eker@lilac.csl.sri.com>
274
275	* A_Symbol.hh (class A_Symbol): deleted decl for compileOpDeclarations()
276
277	* A_Symbol.cc (compileOpDeclarations): deleted
278
279	* A_Symbol.hh (class A_Symbol): added decl for finalizeSortInfo()
280
281	* A_Symbol.cc (finalizeSortInfo): added
282
283Fri Jun  6 18:44:49 1997  Steven Eker  <eker@lilac.csl.sri.com>
284
285	* A_DagNode.hh (class A_DagNode): matchVariableWithExtension()
286	decl added
287
288	* A_Symbol.hh (class A_Symbol): matchVariableWithExtension() decl
289	deleted
290
291	* A_DagNode.cc (matchVariableWithExtension): added
292
293	* A_Symbol.cc (matchVariableWithExtension): deleted
294
295Thu Jun  5 11:55:09 1997  Steven Eker  <eker@lilac.csl.sri.com>
296
297	* A_DagNode.cc (copyEagerUptoReduced2): adapted from old
298	copyEagerUptoReduced()
299	(clearCopyPointers2): adapted from old clearCopyPointers()
300
301	* A_DagNode.hh (class A_DagNode): decls for
302	clearCopyPointers() and copyEagerUptoReduced() changed
303
304	* A_Subproblem.hh (class A_Subproblem): updated
305	computeAssignment() decl
306
307	* A_Subproblem.cc (bindVariables): use checkSort() to check the
308	sort of DagNode returned from computeAssignment(); don't pass
309	context to computeAssignment()
310	(computeAssignment): deleted context arg; don't compute sort of
311	newly created DagNode
312
313	* A_Symbol.cc (A_Symbol): don't pass stable arg to PermuteSymbol()
314
315==============================Engine24====================================
316
317Wed May 14 15:43:13 1997  Steven Eker  <eker@lilac.csl.sri.com>
318
319	* A_Symbol.cc (eqRewrite): changed comment on repudiate call now
320	that inErrorSort() can leave sort info behind
321
322Tue May 13 10:41:19 1997  Steven Eker  <eker@lilac.csl.sri.com>
323
324	* Makefile: make libA_Theory.a instead of libAC_Theory.a
325
326	* A_LhsAutomaton.cc (forcedLoneVariableCase): use
327	DagNode::checkProblem() to simplify code
328	Commented out "sortCheckSubproblem.hh"
329
330Thu Apr 10 16:19:35 1997  Steven Eker  <eker@lilac.csl.sri.com>
331
332	* A_LhsAutomaton.cc (forcedLoneVariableCase): must repudiateSort() in
333	the case where the base sort is not small enough and
334 	the top symbol is not sort constraint free as the
335	base sort we calculated may not be the true sort and will inhibit
336	the calculation of the true sort during the solution of the sort
337	check subprblem.
338
339Fri Mar 28 16:55:19 1997  Steven Eker  <eker@lilac.csl.sri.com>
340
341	* A_DagNode.cc (makeExtensionInfo): added
342
343	* A_DagNode.hh (class A_DagNode): added decl for makeExtensionInfo()
344
345Thu Jan  9 15:45:25 1997  Steven Eker  <eker@lilac.csl.sri.com>
346
347	* A_DagNode.cc (overwriteWithClone): fixed serious bug
348	where we were copying sort of overwritten node rather than
349	overwriting node
350
351Tue Jan  7 11:39:30 1997  Steven Eker  <eker@lilac.csl.sri.com>
352
353	* A_Symbol.cc (eqRewrite): fixed bug in lazy case where we were
354	computing a base sort and then returning with out repudiating it
355	if it was not the error sort. Use new inerrorSort() function.
356	(eqRewrite): removed superfluous repudiateSortInfo() from
357	semi-eager case.
358	(eqRewrite): replaced calls to repudiateSortInfo() since
359	applyReplace() may compute true sort which may then have been
360	invalidated by rewriting below
361
362Tue Dec 24 18:04:23 1996  Steven Eker  <eker@lilac.csl.sri.com>
363
364	* A_LhsAutomaton.cc (forcedLoneVariableCase): rewritten to use
365	computeBaseSort() and sortConstraintFree()
366
367	* A_Subproblem.cc (computeAssignment):
368	computeSortWhilePreservingContext() ->
369	computeTrueSortWhilePreservingContext()
370
371	* A_Symbol.cc (eqRewrite): adapted from rewrite(); use
372	computeTrueSort() and computeBaseSort()
373	(computeTrueSort): adapted from computeSort()
374	(computeBaseSort): adapted from findBaseSort()
375
376	* A_Symbol.hh (class A_Symbol): computeSort() replaced by
377	computeBaseSort() and computeTrueSort(); findBaseSort() deleted
378	(class A_Symbol): rewrite() -> eqRewrite()
379
380Thu Dec 19 14:17:24 1996  Steven Eker  <eker@lilac.csl.sri.com>
381
382	* A_DagNode.cc (makeClone): copy sort information to avoid recomputation
383
384Thu Dec 12 17:49:03 1996  Steven Eker  <eker@lilac.csl.sri.com>
385
386	* A_DagNode.cc (overwriteWithClone): copy sort information; this
387	is needed so then when we rewrite with a collapse equation we do
388	not lose sort infomation with the possibility of infinite looping
389	on foreign sort constraints
390
391Wed Dec 11 11:55:43 1996  Steven Eker  <eker@lilac.csl.sri.com>
392
393	* A_Symbol.cc (findBaseSort): sortConstraintFree() used in place
394	of obsolete test (2 places)
395
396Mon Dec  9 14:40:21 1996  Steven Eker  <eker@lilac.csl.sri.com>
397
398	* A_Symbol.cc (computeSort): modified to use new
399	constrainToSmallerSort() convections
400
401Mon Dec  2 11:07:58 1996  Steven Eker  <eker@lilac.csl.sri.com>
402
403	* A_Subproblem.cc (addTopVariable): put bounds args in the correct
404	order!
405
406	* A_Symbol.cc (rewrite): use inert() rather then checking for
407	equations because there may be foreign equations
408
409	* A_FullMatcher.cc (addVariableBlocks): updated addTopVariable() call
410
411	* A_Subproblem.cc (buildPartition): make use of lowerBound in
412	TopVariable struct
413	(addTopVariable): store lowerBound
414
415	* A_Subproblem.hh (class A_Subproblem): added lowerBound to
416	TopVariable struct
417
418Wed Nov 27 17:10:12 1996  Steven Eker  <eker@lilac.csl.sri.com>
419
420	* A_Symbol.cc (matchVariableWithExtension): implemented
421
422	* A_Symbol.hh (class A_Symbol): matchVariableWithExtension() added
423
424Mon Nov 25 19:01:59 1996  Steven Eker  <eker@lilac.csl.sri.com>
425
426	* A_Symbol.cc (A_Symbol): added constructor arg
427
428Thu Nov 14 18:07:59 1996  Steven Eker  <eker@lilac.csl.sri.com>
429
430	* A_DagNode.cc (makeClone): added
431
432Tue Oct 29 17:05:54 1996  Steven Eker  <eker@lilac.csl.sri.com>
433
434	* A_Symbol.cc (rewrite): updates to nrArgs removed as nrArgs is
435	not used afterwards; Assert checking that sort is invalid after
436	applyReduce() in semi-eager case removed since applyReduce() may
437	have good reasons for computing and storing the subjects sorts
438	(e.g. a lhs that parses to the error sort or a foreign lhs that is
439	(or collapses to) a variable).
440
441Tue Oct 15 17:48:41 1996  Steven Eker  <eker@lilac.csl.sri.com>
442
443	* A_RhsAutomaton.cc (dump): added indentLevel arg
444
445	* A_LhsAutomaton.cc (dump): rewritten to handle indentation
446
447Fri Oct 11 16:44:55 1996  Steven Eker  <eker@lilac.csl.sri.com>
448
449	* A_Symbol.cc (partialConstruct): deleted
450	(partialReplace): deleted
451
452	* A_DagNode.cc (partialReplace): added
453	(partialConstruct): added
454
455Wed Oct  2 19:01:26 1996  Steven Eker  <eker@lilac.csl.sri.com>
456
457	* A_DagNode.cc (normalizeAtTop): added call to DagNode::okToCollectGarbage()
458
459Tue Oct  1 14:22:11 1996  Steven Eker  <eker@lilac.csl.sri.com>
460
461	* A_DagNode.cc (normalizeAtTop): removed trackStorage() call
462
463	* A_Symbol.cc (partialReplace): removed trackStorage() call
464
465	* A_DagNode.cc (markArguments): call to evacuate() added
466
467	* A_DagNode.hh (A_DagNode): removed trackStorage() call
468
469	* A_DagNode.cc (A_DagNode): removed trackStorage() call
470
471	* A_Term.cc: Vector -> ArgVec
472
473	* A_Symbol.cc: Vector -> ArgVec
474
475	* A_Subproblem.cc: Vector -> ArgVec
476
477	* A_RhsAutomaton.cc: Vector -> ArgVec
478
479	* A_LhsAutomaton.cc: Vector -> ArgVec
480
481	* A_GreedyMatcher.cc: Vector -> ArgVec
482
483	* A_FullMatcher.cc: Vector -> ArgVec
484
485	* A_DagNode.cc: Vector -> ArgVec
486
487	* A_RhsAutomaton.hh (class A_RhsAutomaton): Vector -> ArgVec
488
489	* A_DagNode.hh (class A_DagNode): Vector -> ArgVec
490
491	* A_LhsAutomaton.hh (class A_LhsAutomaton): Vector -> ArgVec
492
493	* A_DagArgumentIterator.hh (class A_DagArgumentIterator): Vector -> ArgVec
494
495Wed Sep 25 14:21:39 1996  Steven Eker  <eker@lilac.csl.sri.com>
496
497	* A_DagNode.cc (stackArguments): added
498	(copyWithReplacement): added
499
500	* A_Symbol.cc (ruleRewrite): added
501	(specificRewrite): added
502	(partialConstruct): added
503
504Tue Sep 24 14:41:39 1996  Steven Eker  <eker@lilac.csl.sri.com>
505
506	* A_Subproblem.cc (addNode): remember last blockPair has dummy
507	pattern part with no targets; so we have to change test to
508	blockNr + 1 < blockPairs.length() - 1
509
510	* A_FullMatcher.cc (buildLeftmostPath): deal with cases where
511	first rigid block has no (unbound) variables to the left of it, last rigid
512	block has no (unbound) variables to the right of it, and single
513	rigid block has no (unbound) variables either side of it
514	(addRemainingPaths): implemented
515
516	* A_Subproblem.cc (bindVariables): Asserts regarding part length
517	replaced by if statements that return false: non-linear variable
518	blocks can cause bound variable to have wrong length part
519	(bindVariables): fix index: i -> j
520
521	* A_Subproblem.hh (class A_Subproblem): deleted boundVariablesOK()
522	decl
523
524	* A_Subproblem.cc (bindVariables): major rewrite; now does the
525	work of boundVariablesOK() as well
526	(buildPartition): set boundByUs flag correctly in non-linear
527	variable block case
528	(solveVariableBlock): removed unbindVariables() temp fix
529
530Mon Sep 23 17:50:22 1996  Steven Eker  <eker@lilac.csl.sri.com>
531
532	* A_Subproblem.cc (solvePatternBlock): Assert condition should be
533	>= instead of >
534	(deepSelfDestruct): don't deepSelfDestruct() null subproblem
535	(solveVariableBlock): big mess regarding bound and unbound
536	variables in different involacations on same subproblem; temp fix
537	is to unbind variables at start of non-first invocation
538	(solvePatternBlocks): need to initialize selectedNode first first
539	blockPair correctly
540
541	* A_FullMatcher.cc (buildLeftmostPath): nrRigid + 1 block pairs in
542	subproblem
543	(buildLeftmostPath): formula for nextSubject fixed
544
545Fri Sep 20 16:11:55 1996  Steven Eker  <eker@lilac.csl.sri.com>
546
547	* A_Subproblem.cc: finally compiled after much rewriting
548	(addNode): added
549	(addTopVariable): added
550
551Fri Sep 13 18:29:49 1996  Steven Eker  <eker@lilac.csl.sri.com>
552
553	* A_FullMatcher.cc (determineRigidBlocks): calculate rigid blocks
554	in new way
555
556Thu Sep 12 18:24:34 1996  Steven Eker  <eker@lilac.csl.sri.com>
557
558	* A_Subproblem.hh (class A_Subproblem): added BlockPair struct to
559	try to simplify VariableBlock/RigidBlock handling
560
561Wed Sep 11 19:24:04 1996  Steven Eker  <eker@lilac.csl.sri.com>
562
563	* A_LhsAutomaton.hh (class A_LhsAutomaton): added struct
564	RigidBlock plus match-time storage for rigidBlocks
565
566Thu Aug 29 12:13:34 1996  Steven Eker  <eker@nmos.csl.sri.com>
567
568	* A_Subproblem.hh (class A_Subproblem): have at most two edges
569	exits from each node; a down edge and a right edge.
570
571Tue Aug  6 15:58:22 1996  Steven Eker  <eker@nmos.csl.sri.com>
572
573	* A_LhsCompiler.cc (findConstraintPropagationSequence): matchAtTop
574	arg removed from calls to analyseConstraintPropagation()
575
576	* A_Term.hh (class A_Term): boundAbove arg removed from addFixedLengthBlock()
577
578	* A_LhsCompiler.cc: created by extracting match compilation code
579	form A_Term.cc
580	(analyseConstraintPropagation): matchAtTop arg removed
581	(compileLhs): boundAbove arg and code with updated it and passed
582	it deleted
583	(addFixedLengthBlock): boundAbove arg and code with updated it and passed
584	it deleted
585
586	* A_Term.hh (class A_Term): matchAtTop arg removed from
587	analyseConstraintPropagation(); boundAbove arg removed from compileLhs()
588
589Wed Jul 31 17:37:28 1996  Steven Eker  <eker@nmos.csl.sri.com>
590
591	* A_Symbol.cc (makeTerm): added
592
593Fri Jul 26 16:49:46 1996  Steven Eker  <eker@nmos.csl.sri.com>
594
595	* A_GreedyMatcher.cc (greedyMatch): set extension whole flag correctly
596	(greedyMatch): need to update spare in the case that we enf the
597	main loop with a rigid block still to process
598
599	* A_Term.cc (compileLhs): call addFixedLengthBlock() with
600	boundAbove, boundUniquely the right way around
601	(compileLhs): allow flex part to end with fixed length block
602	if we have extension
603	(compileLhs): need to compile fixed length block that ends the
604	flex part if we have extension
605
606	* A_GreedyMatcher.cc (greedyMatch): heavily revised; now store
607	"spare" rather than "rigidBlockSubjectsNeeded"
608	(greedyMatchVariableBlock): calculate spare correctly
609
610Thu Jul 25 11:13:37 1996  Steven Eker  <eker@nmos.csl.sri.com>
611
612	* A_GreedyMatcher.cc (greedyMatchFixedLengthBlock): no longer do
613	substitution copying; pass back shift factor rather than next
614	shift; code simplified
615	(greedyMatchRigidBlock): do substitution copying
616	(greedyMatch): heavily revised; variableBlockLength no longer needed
617
618	* A_LhsAutomaton.cc (complete): code corrected to do blockLengths for
619	fixed length in _flex_ part (not rigid part!)
620
621Wed Jul 24 16:44:37 1996  Steven Eker  <eker@nmos.csl.sri.com>
622
623	* A_LhsAutomaton.cc (dump): rewritten
624	(complete): added code to fill in blockLength for each rigid subterm
625
626	* A_Subproblem.cc: created
627
628	* A_Subproblem.hh (class A_Subproblem): created
629
630Mon Jul 22 10:44:25 1996  Steven Eker  <eker@ponder.csl.sri.com>
631
632	* A_DagNode.cc (eliminateSubject): rewritten, now only eliminates
633	target from fixed position
634	(eliminateSubject): rewritten; now only examines single position
635
636Sat Jul 20 18:02:24 1996  Steven Eker  <eker@ponder.csl.sri.com>
637
638	* A_LhsAutomaton.hh (class A_LhsAutomaton): maxMatchable field in
639	struct Subterm deleted
640
641	* A_GreedyMatcher.cc (greedyMatchVariableBlock): extensionInfo
642	parameter deleted
643	(greedyMatch): rewritten yet again; now group bound variables with
644	fixed length blocks to make rigid blocks which are matched as
645	whoel units
646
647Fri Jul 19 10:34:55 1996  Steven Eker  <eker@ponder.csl.sri.com>
648
649	* A_GreedyMatcher.cc (greedyMatchVariableBlock): rewritten from scratch
650	(greedyMatch): heavily rewritten
651
652	* A_LhsAutomaton.cc: split off greedy matcher into A_GreedyMatcher.cc
653
654Thu Jul 18 14:28:16 1996  Steven Eker  <eker@ponder.csl.sri.com>
655
656	* A_Term.cc (addFixedLengthBlock): added
657
658	* A_Term.hh (symbol): added
659
660	* A_Term.cc (findConstraintPropagationSequence): when two
661	sequences bind the same number of variables uniquely; choose the
662	longer sequenece. Store the position of the first flex arg in
663	bestSequence structure so we can propagate it easily in the lone
664	variable case
665	(analyseConstraintPropagation): add lone variable in flex part to
666	those variables that we guarantee to bind uniquely
667
668Tue Jul 16 19:13:08 1996  Steven Eker  <eker@ponder.csl.sri.com>
669
670	* A_LhsAutomaton.cc (greedyMatchVariableBlock): rewritten
671
672Mon Jul 15 16:31:25 1996  Steven Eker  <eker@ponder.csl.sri.com>
673
674	* A_LhsAutomaton.cc (greedyMatchFixedLengthBlock2): renamed from
675	matchFixedLengthBlock()
676
677Thu Jul 11 10:42:29 1996  Steven Eker  <eker@ponder.csl.sri.com>
678
679	* A_LhsAutomaton.cc (updateWholeBounds): use plus() to simplify
680	(updateFlexBounds): use plus() to simplify
681
682	* A_ExtensionInfo.hh (setMatched): deleted
683	(setFirstMatched): added
684	(setLastMatched): added
685
686	* A_DagNode.cc (eliminateSubject): added
687
688	* A_LhsAutomaton.cc (nextMatchForFixedLengthBlock): added
689	(matchFixedLengthBlock): added
690	(compareArgArrays): added
691
692Tue Jul  9 17:20:35 1996  Steven Eker  <eker@ponder.csl.sri.com>
693
694	* A_Symbol.cc (findBaseSort): added code to use uniform sort
695	structure if it exists
696
697Sat Jul  6 17:24:21 1996  Steven Eker  <eker@ponder.csl.sri.com>
698
699	* A_Symbol.cc (partialReplace): dded code to track storage
700	during expansion
701
702	* A_DagNode.cc (normalizeAtTop): added code to track storage
703	during expansion
704
705Fri Jul  5 17:46:56 1996  Steven Eker  <eker@ponder.csl.sri.com>
706
707	* A_LhsAutomaton.cc (A_LhsAutomaton): fixed flex bound
708	initilaization problem
709
710	* A_Term.cc (findConstraintPropagationSequence): added
711
712Wed Jul  3 11:41:32 1996  Steven Eker  <eker@ponder.csl.sri.com>
713
714	* A_Term.cc (compileLhs): crude implementation
715	(analyseConstraintPropagation): implemented
716
717	* A_LhsAutomaton.cc (updateWholeBounds): added
718	(updateFlexBounds): added
719	(addRigidVariable): added
720	(addFlexVariable): added
721	(addRigidGroundAlien): added
722	(addRigidNonGroundAlien): added
723	(addFlexGroundAlien): added
724	(addFlexNonGroundAlien): added
725	(complete): added
726
727Tue Jul  2 16:06:28 1996  Steven Eker  <eker@ponder.csl.sri.com>
728
729	* A_LhsAutomaton.cc (forcedLoneVariableCase): completed
730
731Sat Jun 29 15:31:14 1996  Steven Eker  <eker@ponder.csl.sri.com>
732
733	* A_LhsAutomaton.cc (matchRigidPart): added
734
735