The wouldwork Reference Manual

This is the wouldwork Reference Manual, version 0.0.1, generated automatically by Declt version 4.0 beta 2 "William Riker" on Fri May 15 13:13:13 2026 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 wouldwork

classical planning with the wouldwork planner

Authors

Program Development, Dave Brown <>
Quicklisp Integration & Test, Gwang-Jin Kim <>

Home Page

https://github.com/davypough/quick-wouldwork

Source Control

(GIT https://github.com/davypough/quick-wouldwork.git)

Bug Tracker

https://github.com/davypough/quick-wouldwork/issues

License

MIT

Version

0.0.1

Dependencies
  • alexandria (system).
  • iterate (system).
  • lparallel (system).
Source

wouldwork.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


4.1 Lisp


4.1.1 wouldwork/wouldwork.asd

Source

wouldwork.asd.

Parent Component

wouldwork (system).

ASDF Systems

wouldwork.


4.1.2 wouldwork/src/ww-packages.lisp

Source

wouldwork.asd.

Parent Component

src (module).

Packages

4.1.3 wouldwork/src/ww-utilities.lisp

Dependency

ww-packages.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.4 wouldwork/src/ww-hstack.lisp

Dependency

ww-utilities.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.5 wouldwork/src/ww-preliminaries.lisp

Dependency

ww-hstack.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.6 wouldwork/src/ww-settings.lisp

Dependency

ww-preliminaries.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.7 wouldwork/src/ww-structures.lisp

Dependency

ww-settings.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.8 wouldwork/src/ww-converter.lisp

Dependency

ww-structures.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.9 wouldwork/src/ww-validator.lisp

Dependency

ww-converter.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.10 wouldwork/src/ww-frequencies.lisp

Dependency

ww-validator.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.11 wouldwork/src/ww-support.lisp

Dependency

ww-frequencies.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.12 wouldwork/src/ww-happenings.lisp

Dependency

ww-support.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.13 wouldwork/src/ww-translator.lisp

Dependency

ww-happenings.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.14 wouldwork/src/ww-installer.lisp

Dependency

ww-translator.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.15 wouldwork/src/ww-patroller-installer.lisp

Dependency

ww-installer.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.16 wouldwork/src/ww-interface.lisp

Dependency

ww-patroller-installer.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.17 wouldwork/src/ww-problem-tests.lisp

Dependency

ww-interface.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Public Interface

run-test-problems (function).

Internals

4.1.18 wouldwork/src/ww-set.lisp

Dependency

ww-problem-tests.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

ww-set (macro).


4.1.19 wouldwork/src/ww-command-tests.lisp

Dependency

ww-set.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.20 wouldwork/src/problem.lisp

Dependency

ww-command-tests.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).


4.1.21 wouldwork/src/ww-action-trace.lisp

Dependency

problem.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.22 wouldwork/src/ww-goal-chaining.lisp

Dependency

ww-action-trace.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.23 wouldwork/src/ww-solution-validation.lisp

Dependency

ww-goal-chaining.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.24 wouldwork/src/ww-planner.lisp

Dependency

ww-solution-validation.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.25 wouldwork/src/ww-searcher.lisp

Dependency

ww-planner.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.26 wouldwork/src/ww-backtracker.lisp

Dependency

ww-searcher.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.27 wouldwork/src/ww-parallel-infrastructure.lisp

Dependency

ww-backtracker.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.28 wouldwork/src/ww-parallel.lisp

Dependency

ww-parallel-infrastructure.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

4.1.29 wouldwork/src/ww-initialize.lisp

Dependency

ww-parallel.lisp (file).

Source

wouldwork.asd.

Parent Component

src (module).

Internals

5 Packages

Packages are listed by definition order.


5.1 utilities

Source

ww-packages.lisp.

Nickname

ut

Use List

common-lisp.

Internals

5.2 hstack

Source

ww-packages.lisp.

Nickname

hs

Use List

common-lisp.

Internals

5.3 wouldwork

Source

ww-packages.lisp.

Nickname

ww

Use List
  • common-lisp.
  • iterate.
  • sb-ext.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


6.1 Public Interface


6.1.1 Special variables

Special Variable: *globals-file*

In the vals.lisp file of this package the values of parameters are stored as a list.
This should preserve when reloading the package for problems the values of these global variables.

Package

wouldwork.

Source

ww-interface.lisp.

Special Variable: *problem-folder-paths*

This variable holds all folder pathnames which can hold problems in this system. The user cann add custom folder pathnames to this folder using the function ‘add-problem-folder‘ and remove by ‘remove-problem-folder‘.
The Package directory’s ‘src‘ folder, however will always persist.

Package

wouldwork.

Source

ww-interface.lisp.


6.1.2 Macros

Macro: run (problem-name)

Stages and solves a user specified problem.

Package

wouldwork.

Source

ww-interface.lisp.


6.1.3 Ordinary functions

Function: add-problem-folder (folder-path)

Adds an additional path to a folder containing problem-*.lisp files to the global list ‘*problem-folder-paths*‘.

Package

wouldwork.

Source

ww-interface.lisp.

Function: display-globals ()
Package

wouldwork.

Source

ww-interface.lisp.

Function: get-src-folder-path ()
Package

wouldwork.

Source

ww-interface.lisp.

Function: help ()
Package

wouldwork.

Source

ww-interface.lisp.

Function: read-globals ()

Read and setf values for global variables from vals.lisp file.

Package

wouldwork.

Source

ww-interface.lisp.

Function: remove-problem-folder (folder-path)

Removes folder-path from global ‘*problem-folder-paths*‘ list. It always leaves the packages’ ‘src‘ folder present!

Package

wouldwork.

Source

ww-interface.lisp.

Function: run-test-problems ()
Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: save-globals ()

Save the values of the globals in the vals.lisp file.

Package

wouldwork.

Source

ww-interface.lisp.


6.1.4 Standalone methods

Method: print-object ((object node) stream)
Source

ww-structures.lisp.

Method: print-object ((ps problem-state) stream)
Source

ww-structures.lisp.


6.2 Internals


6.2.1 Constants

Constant: +initial-task-queue-size+

Initial capacity of task queue. Will grow if needed during task generation.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.


6.2.2 Special variables

Special Variable: *-*

Division marker for debugging printout convenience.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *accumulated-depths*

Sums the final depths of all terminated paths so far.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *actions*

List of all potential actions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *algorithm*

Specify search algorithm: ’depth-first (default) or ’backtracking. depth-first: Traditional DFS with state copying (current behavior) backtracking: DFS with single state and undo operations (memory efficient)

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *average-branching-factor*

Average branching factor so far during search (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *backtrack-state*

The single working state for backtracking search

Package

wouldwork.

Source

ww-backtracker.lisp.

Special Variable: *best-bound*

Current best solution bound for pruning.
For min-length/min-time/min-value: lower is better.
For max-value: stored as negated value (so lower is still better). Workers cache this locally and refresh periodically.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *best-bound-lock*

Protects updates to *best-bound*.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *best-solution-lock*

Protects updates to *solutions* and *unique-solutions* during parallel search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *best-states*

Holds the best states encountered during a graph search.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *bound-refresh-interval*

Number of cycles between bound cache refreshes in workers.
Lower = more responsive to bound updates, higher = less overhead.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *branch*

If n>0, explore only the nth branch from the *start-state*.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *choice-stack*

Stack of choices made during backtracking search; path back to start state.

Package

wouldwork.

Source

ww-backtracker.lisp.

Special Variable: *closed*

Contains the set of closed state idbs for graph search, idb -> (depth time value).

Package

wouldwork.

Source

ww-searcher.lisp.

Special Variable: *closed-shard-locks*

Vector of mutexes for sharded *closed*. One per shard.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *closed-shard-mask*

Bitmask for fast shard computation: (logand hash mask).

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *closed-shards*

Vector of hash tables for sharded *closed*. One per shard.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *complements*

Table of complement relations.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *connectives*

Logical connectives.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *constant-integers*

Integer codes for the problem’s object constants.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *cost*
Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *counter*

For misc debugging with probe function

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *db*

Initial database of dynamic db relations.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *debug*

Set the debug level for subsequent runs.
0 - no debugging
1 - display full search tree
2 - display full search tree with states
3 - display basic nodes
4 - display full nodes
5 - display full nodes + break after each expansion cycle

Package

wouldwork.

Source

ww-preliminaries.lisp.

Special Variable: *default-parameters*

Default parameter values in save/read order

Package

wouldwork.

Source

ww-interface.lisp.

Special Variable: *depth-cutoff*

Negative or 0 means no cutoff.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *donation-check-interval*

Number of cycles between donation eligibility checks.
Lower = more responsive load balancing, higher = less overhead.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *donation-fraction*

Fraction of local stack to donate when donating (0.0 to 1.0). Donates the shallowest nodes (largest subtrees).

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *donation-threshold*

Minimum local stack size before a worker considers donating work. Must have at least this many nodes to donate.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *eff-param-vars*

Make eff-param-vars available in translate-assert.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *enable-work-donation*

When T, workers can donate excess work back to the task queue. Set to NIL to disable load balancing (for debugging/comparison).

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *first-solution-found*

Set to T by any worker finding a solution when *solution-type* is FIRST.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *fixed-ht-values-fn*

Determines which equality test to use in fixed-keys-ht-equal.

Package

wouldwork.

Source

ww-searcher.lisp.

Special Variable: *fluent-relation-indices*

List of fluent argument indices for a relation.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *freq-ht*
Package

wouldwork.

Source

ww-frequencies.lisp.

Special Variable: *global-invariants*

List of invariant query functions to check on every state.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *goal*

Holds the current user goal specification.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *hap-db*

Initial database of happenings propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *hap-idb*

Initial integer database of happenings propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *happening-names*

The list of objects having exogenous events.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *hdb*

Initial database of dynamic hdb relations.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *hidb*

Initial integer database of dynamic hidb propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *hybrid-goals*

In hybrid mode, stores (current-node . goal-state) pairs for deferred enumeration.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *hybrid-mode*

When T, hybrid graph search is active for enumerating all solutions at *depth-cutoff*.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *idb*

Initial integer database of dynamic idb propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *inconsistent-states-dropped*

Count of successor states dropped due to convergence failure.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *init-actions*

List of all initialization actions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *integer-constants*

Translating codes back to constants for printout.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *integer-lock*
Package

wouldwork.

Source

ww-preliminaries.lisp.

Special Variable: *last-object-index*

Last index of object constants seen so far in propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *last-progress-time*

Internal time of last progress report.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *lock*
Package

wouldwork.

Source

ww-preliminaries.lisp.

Special Variable: *max-depth-explored*

Keeps track of the maximum depth reached so far during the search (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *min-action-duration*

The least action duration among all actions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *min-tasks*

Minimum number of tasks to generate regardless of thread count.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *num-closed-shards*

Number of shards for parallel *closed* table. Must be power of 2. Default 64 provides good distribution for up to 64 cores.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *num-idle-threads*

Holds the number of currently idle threads (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *num-init-successors*

The number of branches completed so far from the start state.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *num-paths*

Tracks the total number of paths explored so far.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *objective-value-p*

Does the variable $objective-value appear in an action rule.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *open*

The hash-stack structure containing the stack of open nodes as a vector, and hash table of idb -> node.

Package

wouldwork.

Source

ww-searcher.lisp.

Special Variable: *parallel-search-active*

T when partitioned parallel search is running.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *parallel-timing*

Timing data from most recent parallel search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *parameter-headers*

The different ways values can be combined in a pre-parameter list.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *print-updates*

Print each database update while T

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *prior-time*

Time since last progress printing (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *prior-total-states-processed*

Count of states produced since last progress printing (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *probe*

Inserts a probe to stop processing at a specific state.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *problem-name*

Name of the current problem, reassigned in problem.lisp by user.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *problem-type*

Spedify whether it’s a planning problem or constraint satisfaction problem.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *program-cycles*

Count of complete cycles of searching (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *progress-interval-seconds*

Minimum seconds between progress reports.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *progress-lock*

Prevents interleaved progress output from multiple workers.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *progress-reporting-interval*

Print progress during search after each multiple n of states examined.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *prop-key-cache*

Cache for prop-key-to-integer conversions

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *proposition-read-mode*

Dynamic variable controlling read/write mode during translation. When :unbound: Use context-dependent behavior (default) When t: Force read operations (queries only)
When nil: Force write operations

Package

wouldwork.

Source

ww-translator.lisp.

Special Variable: *query-names*

List of all user-defined query functions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *randomize-search*

Set to t or nil.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *refreshing*

Flag to skip read-globals during refresh, preserving REPL-set parameters.

Package

wouldwork.

Source

ww-interface.lisp.

Special Variable: *relations*

Dynamic relations.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *rem-init-successors*

Holds the remaining initial branch nodes from the start state.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *repeated-states*

Count of the repeated states during a graph search.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *search-lock*
Package

wouldwork.

Source

ww-preliminaries.lisp.

Special Variable: *search-tree*

DFS search tree for debugging (serial processing only).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *shutdown-requested*

Variable used to signal threads shutdown, if *threads* > 0

Package

wouldwork.

Source

ww-searcher.lisp.

Special Variable: *solution-count*

Holds the total number of solutions found following search.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *solution-type*

Specify whether to search for first, min-length, min-time, or every solution.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *solutions*

Holds the solutions found during search.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *split-depth-max*

Maximum depth for task generation. With branching factor 4, depth 4 yields up to 256 tasks.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *start-state*

Start search from this state.

Package

wouldwork.

Source

ww-structures.lisp.

Special Variable: *start-time*

Stores time at beginning of the search.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *state-codes*

Holding place for integer state codes in bi-directional search.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *static-db*

Initial database of static propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *static-idb*

Initial integer database of static propositions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *static-relations*

Static relations.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *symmetrics*

Symmetric relations.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *tasks-per-thread*

Target multiplier: aim for (* *tasks-per-thread* *threads*) tasks minimum.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *test-bt-problem-files*
Package

wouldwork.

Source

ww-problem-tests.lisp.

Special Variable: *test-problem-files*
Package

wouldwork.

Source

ww-problem-tests.lisp.

Special Variable: *threads*

The number of parallel threads to use.
0 means no parallelism (ie, serial processing)
1 means use one parallel thread
(in addition to parallel management, effectively serial, useful for debugging) 2 means two or more parallel processing threads
N up to the number of available CPU threads

Package

wouldwork.

Source

ww-preliminaries.lisp.

Special Variable: *total-states-processed*

Count of states either newly generated, updated, or regenerated while searching (shared).

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *trace-action-name*

When non-nil, traces execution of this action when encountered during search.

Package

wouldwork.

Source

ww-action-trace.lisp.

Special Variable: *trace-count*

Counts how many unique instantiations have been traced.

Package

wouldwork.

Source

ww-action-trace.lisp.

Special Variable: *traced-instantiations*

Hash table tracking which instantiations have been traced to avoid duplicates. Key: normalized instantiation list, Value: T

Package

wouldwork.

Source

ww-action-trace.lisp.

Special Variable: *tree-or-graph*

Whether there are repeated states (graph) or not (tree); try both.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *troubleshoot-current-node*

A flag telling wouldwork to redo the current node for debugging.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *types*

Table of all types.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *undo-checkpoint*

Saved state from most recent ww-continue, or nil if none.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Special Variable: *unique-solutions*
Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *update-names*

List of all user-defined update functions.

Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *upper*
Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *upper-bound*
Package

wouldwork.

Source

ww-settings.lisp.

Special Variable: *within-quantifier*

Dynamic variable indicating whether translation is occurring within a quantifier context. When T, IF statements return explicit T/NIL for control flow semantics.
When NIL, IF statements preserve natural value-returning semantics.

Package

wouldwork.

Source

ww-translator.lisp.

Special Variable: *worker-stats-vector*

Vector of worker-stats structures, one per worker thread.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Special Variable: *ww-loading*

Flag to indicate if Wouldwork is currently being loaded. Reset in ww-initialize.lisp

Package

wouldwork.

Source

ww-preliminaries.lisp.


6.2.3 Macros

Macro: define-action (name duration pre-params precondition eff-params effect)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-complementary-relations (&rest positives->negatives)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-constraint (form)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-dynamic-relations (&rest relations)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-global (var-name val-form &optional doc-string)
Package

wouldwork.

Source

ww-preliminaries.lisp.

Macro: define-goal (form)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-happening (object &rest plist)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-init (&rest literals)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-init-action (name duration pre-params precondition eff-params effect)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-invariant (name args body)

Define an invariant condition that must always be true. Registers the invariant for global checking during planning.

Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-patroller (object &rest slots)

Define a path-following patroller object.

Syntax:
(define-patroller <name>
path <area-list>
mode <:reverse | :cycle>
[timings <time-list>]
[interrupt <condition>]
[rebound <condition>])

Arguments:
path - Required. List of areas defining the path (minimum 2). mode - Required. :reverse for ping-pong, :cycle for wrap-around. timings - Optional. List of durations for each segment. Default: all 1s. interrupt - Optional. Condition that pauses patroller movement. rebound - Optional. Condition that reverses direction (Phase 2).

The patroller’s initial location must be specified via define-init.
The path traversal begins from that location.

Example:
(define-patroller buzzer1
path (area1 area2 area3 area4 area5)
mode :reverse
rebound (exists (?c cargo)
(and (loc buzzer1 $area)
(loc ?c $area))))

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Macro: define-query (name args body)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-static-relations (&rest relations)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-types (&rest types&values)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: define-update (name args body)
Package

wouldwork.

Source

ww-installer.lisp.

Macro: equivalent (&rest forms)

Returns true if all forms evaluate to nil, or if all forms evaluate to non-nil.

Package

wouldwork.

Source

ww-support.lisp.

Macro: if-it (form then &optional else)

Binds the variable ’it’ to the result of evaluating the form, which can then be used subsequently in the then or else clauses.

Package

utilities.

Source

ww-utilities.lisp.

Macro: increment-global (var-name &optional delta-form)
Package

wouldwork.

Source

ww-preliminaries.lisp.

Macro: lprt (&rest vars)

Print some variable values in a thread for debugging.

Package

wouldwork.

Source

ww-searcher.lisp.

Macro: mvb (vars values-form &rest body)

Abbreviation for multiple-value-bind.

Package

utilities.

Source

ww-utilities.lisp.

Macro: mvs (vars values-form &rest body)

Abbreviation for multiple-value-setq.

Package

utilities.

Source

ww-utilities.lisp.

Macro: mvsetq (var-list form)
Package

wouldwork.

Source

ww-support.lisp.

Macro: pop-global (var-name)
Package

wouldwork.

Source

ww-preliminaries.lisp.

Macro: prt (&rest forms)

Print the names & values of given forms (ie,variables or accessors). Can wrap around an expression, returning its value.

Package

utilities.

Source

ww-utilities.lisp.

Macro: prt-if (&rest args)

Conditional prt–eg, (ut::prt-if (?x 3) (?y ’abc) (ut::prt ’printing-x&y ?x ?y))

Package

utilities.

Source

ww-utilities.lisp.

Macro: push-global (item var-name)
Package

wouldwork.

Source

ww-preliminaries.lisp.

Macro: sortf (place function &rest sort-key)

Modifies a referenced sequence by sorting it.

Package

utilities.

Source

ww-utilities.lisp.

Macro: stage (problem-name)

Loads a specified problem to be subsequently solved. This allows the user to verify/debug their problem specification, and check the current parameters, without asking wouldwork to solve it as run does. Once the problem loads correctly, it can then be solved with a follow-up (solve) command.

Package

wouldwork.

Source

ww-interface.lisp.

Macro: trace-action (action-name)
Package

wouldwork.

Source

ww-action-trace.lisp.

Macro: validate-solution (&rest args)

Validate a sequence of actions starting from *start-state*.

Usage:
(validate-solution
(move-to agent1 area2)
(pickup agent1 connector1)
(connect agent1 transmitter1 receiver3))

Options (must appear first):
:verbose - Show detailed diagnostic output for each action

Returns:
- The final state if all actions succeed and goal is satisfied
- The intermediate state if all actions succeed but goal not satisfied - NIL if any action fails (with diagnostic output)

Output:
- On success: displays final state
- On partial success: displays intermediate state
- On failure: displays failed action, reason, and state at failure

Package

wouldwork.

Source

ww-solution-validation.lisp.

Macro: when-debug>= (n &rest expressions)

Inserts debugging expressions when *debug* >= n, otherwise NIL

Package

wouldwork.

Source

ww-support.lisp.

Macro: with-closed-shard-lock ((state) &body body)

Execute BODY while holding the shard lock for STATE.
STATE must be a problem-state with idb-hash computed (or computable). Multiple threads can execute concurrently if accessing different shards.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Macro: with-closed-shard-lock-by-index ((shard-index) &body body)

Execute BODY while holding the shard lock for SHARD-INDEX. Use when you have the shard index but not the full state.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Macro: with-search-structures-lock (&body body)

Protects composite operations on *open* and *closed* search structures.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Macro: with-silenced-compilation (&body body)

Macro to suppress normal compilation output while preserving error reporting.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Macro: ww-continue (goal-form)

Continue search from the final state of the previous solution. Installs GOAL-FORM as the new goal and updates *start-state*.

Usage:
(solve) ; Solve initial goal (ww-continue (loc agent area)) ; Set up continuation with new goal (solve) ; Solve for new goal

Updates only the starting conditions:
- Previous goal state becomes new *start-state*
- New goal installed and compiled
- Heuristic re-applied to new start state

The next (solve) call will automatically reset all search counters and initialize data structures as usual.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Macro: ww-set (param val)

Allows resetting of user parameters during and after loading.

Package

wouldwork.

Source

ww-set.lisp.


6.2.4 Ordinary functions

Function: $var-or-$var-list-p (item)
Package

wouldwork.

Source

ww-validator.lisp.

Function: $varp (item)
Package

wouldwork.

Source

ww-validator.lisp.

Function: %run (problem-name-str)

Stages and solves a user specified problem with default parameters.

Package

wouldwork.

Source

ww-interface.lisp.

Function: %stage (problem-name-str)

Loads a specified problem to be subsequently solved. This allows the user to verify/debug their problem specification, and check the current parameters, without asking wouldwork to solve it as run does. Once the problem loads correctly, it can then be solved with a follow-up (solve) command.

Package

wouldwork.

Source

ww-interface.lisp.

Function: %validate-solution (action-list &optional verbose)

Internal implementation of validate-solution.
Executes ACTION-LIST sequentially from *start-state*.
ACTION-LIST may be either:
- Plain actions: ((ACTION arg1 arg2) (ACTION2 arg1) ...)
- Timestamped actions: ((1.0 (ACTION arg1 arg2)) (2.0 (ACTION2 arg1)) ...) If VERBOSE is true, shows diagnostic output for each action.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: ?var-or-?var-list-p (item)
Package

wouldwork.

Source

ww-validator.lisp.

Function: ?varp (item)
Package

wouldwork.

Source

ww-validator.lisp.

Function: action-p (object)
Package

wouldwork.

Source

ww-structures.lisp.

Reader: action.duration (instance)
Writer: (setf action.duration) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

duration.

Reader: action.dynamic (instance)
Writer: (setf action.dynamic) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

dynamic.

Reader: action.eff-defun-name (instance)
Writer: (setf action.eff-defun-name) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

eff-defun-name.

Reader: action.effect-adds (instance)
Writer: (setf action.effect-adds) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

effect-adds.

Reader: action.effect-lambda (instance)
Writer: (setf action.effect-lambda) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

effect-lambda.

Reader: action.effect-variables (instance)
Writer: (setf action.effect-variables) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

effect-variables.

Reader: action.ieffect-lambda (instance)
Writer: (setf action.ieffect-lambda) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

ieffect-lambda.

Reader: action.init (instance)
Writer: (setf action.init) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

init.

Reader: action.iprecondition-lambda (instance)
Writer: (setf action.iprecondition-lambda) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

iprecondition-lambda.

Reader: action.name (instance)
Writer: (setf action.name) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

name.

Reader: action.pre-defun-name (instance)
Writer: (setf action.pre-defun-name) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

pre-defun-name.

Reader: action.precondition-args (instance)
Writer: (setf action.precondition-args) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-args.

Reader: action.precondition-form (instance)
Writer: (setf action.precondition-form) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-form.

Reader: action.precondition-lambda (instance)
Writer: (setf action.precondition-lambda) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-lambda.

Reader: action.precondition-params (instance)
Writer: (setf action.precondition-params) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-params.

Reader: action.precondition-type-inst (instance)
Writer: (setf action.precondition-type-inst) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-type-inst.

Reader: action.precondition-types (instance)
Writer: (setf action.precondition-types) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-types.

Reader: action.precondition-variables (instance)
Writer: (setf action.precondition-variables) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

precondition-variables.

Function: add-dir (root dir)

Add to absolute path an additional directory

Package

wouldwork.

Source

ww-interface.lisp.

Function: add-file (root file)

Add to absolute path a filename

Package

wouldwork.

Source

ww-interface.lisp.

Function: add-parent-to-node (node new-parent &optional move)

Adds NEW-PARENT to NODE’s parent slot for hybrid mode.
In hybrid mode, stores (parent-node . move) pairs; checks for duplicate parents. In non-hybrid mode, stores just the parent node.
Thread-safe: uses locking when *threads* > 0.

Package

wouldwork.

Source

ww-structures.lisp.

Function: add-prop (proposition db)

Effectively adds an atomic proposition to the database.

Package

wouldwork.

Source

ww-support.lisp.

Function: add-proposition (proposition db)

Adds an atomic proposition and all its symmetries to the database.

Package

wouldwork.

Source

ww-support.lisp.

Function: agent-starred-p (agent)

Returns T if AGENT symbol name ends with asterisk.

Package

utilities.

Source

ww-utilities.lisp.

Function: aggregate-worker-stats ()

Sum all worker statistics into global variables. Called after search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: amend-happenings (state act-state)

Creates hap-state with happenings up through the action completion time for all happenings. Returns net-state = act-state + hap-state, and checks for constraint violation.

Package

wouldwork.

Source

ww-happenings.lisp.

Function: apply-action-to-state (action-form state next-action-form &optional verbose)

Apply a single action form to state.
Returns (values new-state success-p failure-reason).

ACTION-FORM is (action-name arg1 arg2 ...)
STATE is the current problem-state.
NEXT-ACTION-FORM is the following action (for multi-effect disambiguation) or nil. VERBOSE if true shows diagnostic output.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: apply-followups (state update)

Apply followup functions to state, modifying it in place. Followups are (function-name . args) pairs.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: apply-parallel-preset (preset)

Apply a named configuration preset for common scenarios. PRESET can be: :default, :aggressive, :conservative, :debug

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: apply-rebound (following-happening)

Compute mirror index for rebound. For :reverse mode patrollers,
reverses direction by jumping to the mirror event in the events array. Mirror formula: for events array of length N, mirror of index I is (N - I).

Package

wouldwork.

Source

ww-happenings.lisp.

Function: apply-update-to-state (state update action)

Apply an update structure to a state, modifying it in place.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: args-match-with-combinations (action effect-args provided-args)

Compare effect-args with provided-args, treating combination-derived positions as order-independent (set equality).
Returns T if arguments match, NIL otherwise.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: associate-objects-with-integers ()

Build list of all object constants requiring conversion.

Package

wouldwork.

Source

ww-converter.lisp.

Function: at-max-depth (succ-depth)

Determines if installing a nongoal successor to the current node will be pointless, based on it being at the max allowable depth.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: backtrack (level)

Recursive backtracking search over new states from assert clauses.

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: backward-path-exists (state)

Use in forward search goal to check existence of backward path.

Package

wouldwork.

Source

ww-support.lisp.

Function: best-states-last (state1 state2)

Used to sort a list of expanded states according to the user-defined heuristic.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: better-than-closed (closed-values succ-state succ-depth)

Check if succ-state is better than the closed version. CALLER MUST HOLD THE APPROPRIATE SHARD LOCK in parallel mode.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: bounding-function (current-node)

Applies the bounding function, if there is one.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: build-state-from-update (state update action)

Create a new state by applying update to state.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: check-action (action-name &key add)

Test an action by finding a valid instantiation and showing the effect.
:ADD is a list of propositions to add to the test state to satisfy preconditions.

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-bind-fluent-consistency (proposition)

Validates that fluent positions in bind statements use $var arguments.
Fluent positions (per relation definition) must use $var to receive bound values.

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-effect-parameters (eff-parameter-list)

Checks a user action effect.

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-form-body (form)

Detects an error in a ww translated form expression.

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-happening (happening-object property-list)
Package

wouldwork.

Source

ww-installer.lisp.

Function: check-patroller-spec (object plist)

Validate the patroller specification.

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Function: check-precondition-parameters (pre-parameter-list)

Checks a user precondition action or logical parameter list.

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-predicate (proposition)

Detects an error in the use of an unknown predicate.

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-problem-parameter (param val)
Package

wouldwork.

Source

ww-validator.lisp.

Function: check-proposition (proposition)

Detects an error in a proposition–eg, (height block1 3) or (loc ?queen $row (1+ $col)).

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-query/update-call (fn-call)

Checks the validity of a call to a query or update function during translation–eg, (cleartop? ?block)

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-query/update-function (fn-name args body)

Detects an error in the supplied arguments to a user-defined query or update function–eg, (?queen $row $col).

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-relation (relation)

Checks for errors in a user-defined relation–eg, (height ?obj $fixnum).

Package

wouldwork.

Source

ww-validator.lisp.

Function: check-validation-result (final-state action-count)

Check if goal is satisfied and report result.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: check-variable-names (action-name pre-param-?vars precondition effect all-detected-vars)

Checks the validity (eg, spelling) of vars in an action rule.

Package

wouldwork.

Source

ww-validator.lisp.

Function: choice-p (object)
Package

wouldwork.

Source

ww-backtracker.lisp.

Reader: choice.act (instance)
Writer: (setf choice.act) (instance)
Package

wouldwork.

Source

ww-backtracker.lisp.

Target Slot

act.

Reader: choice.forward-update (instance)
Writer: (setf choice.forward-update) (instance)
Package

wouldwork.

Source

ww-backtracker.lisp.

Target Slot

forward-update.

Reader: choice.inverse-update (instance)
Writer: (setf choice.inverse-update) (instance)
Package

wouldwork.

Source

ww-backtracker.lisp.

Target Slot

inverse-update.

Reader: choice.level (instance)
Writer: (setf choice.level) (instance)
Package

wouldwork.

Source

ww-backtracker.lisp.

Target Slot

level.

Function: choose-ht-value-test (relations)

Chooses either #’equal or #’equalp as a test for *closed* ht (idb) keys.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: cl-symbol-p (item)

Return true if item is from the common-lisp package.

Package

wouldwork.

Source

ww-translator.lisp.

Function: cleanup-resources ()

Attempt to shutdown dangling threads safely in SBCL.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Function: cleanup-test-files ()

Delete temporary problem.lisp and vals.lisp files

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: clear-hstack (hstk)
Package

hstack.

Source

ww-hstack.lisp.

Function: closed-key (state depth)

Generates the appropriate key for *closed* hash table lookup/storage. Standard mode: idb-hash (state identity only)
Hybrid mode: (cons idb-hash depth) for (state, depth) pair identity.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: closed-shard (state)

Return the hash table shard for STATE.
Caller should hold the shard lock via with-closed-shard-lock.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: closed-shard-lock (state)

Return the mutex for STATE’s shard.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: closed-shards-distribution ()

Return list of (shard-index . count) for non-empty shards. Useful for checking distribution quality.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: closed-shards-total-count ()

Return total entry count across all closed shards.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: closed-shards-total-size ()

Return total allocated size across all closed shards.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: collect-at-indexes (idxs lst)

Collect items at given indexes from a list.

Package

utilities.

Source

ww-utilities.lisp.

Function: collect-solution-data ()

Collect best solution and state from current problem results

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: command-test-1 ()

Verify default blocks3 runs properly if no prior problem.lisp or vals.lisp

Package

wouldwork.

Source

ww-command-tests.lisp.

Function: command-test-2 ()

Verify wouldwork properly switches to a new problem

Package

wouldwork.

Source

ww-command-tests.lisp.

Function: command-test-3 ()

Verify proper notification if requested problem file does not exist

Package

wouldwork.

Source

ww-command-tests.lisp.

Function: command-test-4 ()

Verify basic ww-set for *depth-cutoff* *tree-or-graph* *solution-type* *progress-reporting-interval* *randomize-search* *branch* *probe* *debug*

Package

wouldwork.

Source

ww-command-tests.lisp.

Function: compile-all-functions ()

Compile all action preconditions/effects, queries, updates, goal, and constraint functions. Should only be called once during initialization.

Package

wouldwork.

Source

ww-converter.lisp.

Function: compute-average-branching-factor ()

Average branching on each cycle.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: compute-donation-count (stack-size)

Compute how many nodes to donate based on stack size and donation fraction.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: compute-donation-totals ()

Compute total donation statistics across all workers. Returns (values total-nodes-donated total-donation-events).

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: compute-idb-hash (idb-hash-table)

Computes a fixnum hash from an idb hash table.
Uses XOR of sxhash values for deterministic hashing.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: compute-state-bound-value (state depth)

Compute the bound value for STATE at DEPTH based on *solution-type*. Returns value in ’lower is better’ convention.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: compute-target-tasks ()

Compute target number of tasks based on thread count.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: constraint-violated-in-act-hap-net (act-state hap-state net-state)

Determines whether the input states violate a constraint or not.

Package

wouldwork.

Source

ww-happenings.lisp.

Function: continue-from-solution (goal-form)

Internal implementation of ww-continue.
Updates *start-state* and goal, then lets normal (solve) flow handle the rest.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: convert-databases-to-integers ()

Convert propositions in databases to integer keys and store in integer databases. This can be called multiple times to convert newly-added propositions.

Package

wouldwork.

Source

ww-converter.lisp.

Function: convert-prop-list (prop-list)

Converts a statement form in an action–eg, (list ’loc ?jammer ?area) with no $vars to an integer key form for efficient db access.

Package

wouldwork.

Source

ww-converter.lisp.

Function: convert-to-fluent-proposition (key vals)

Converts an idb partial prop -> index values into literal prop.

Package

wouldwork.

Source

ww-structures.lisp.

Function: convert-to-integer (prop-key)

Thread-safe original version with narrower locking.
Only the create-new-code path runs under the lock; summing happens outside.

Package

wouldwork.

Source

ww-converter.lisp.

Function: convert-to-integer-memoized (prop-key)

Memoized version for straightforward lookup

Package

wouldwork.

Source

ww-converter.lisp.

Function: convert-to-proposition (integer)

Converts an integer code back to a proposition.

Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-action (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-choice (instance)
Package

wouldwork.

Source

ww-backtracker.lisp.

Function: copy-file-content (source-file target-file)

Replace the content of target-file by the content of source-file.

Package

wouldwork.

Source

ww-interface.lisp.

Function: copy-hstack (instance)
Package

hstack.

Source

ww-hstack.lisp.

Function: copy-ht-set (set-ht)

Copy a set hash table (with t values).

Package

wouldwork.

Source

ww-support.lisp.

Function: copy-idb (idb)

Copies a Wouldwork database with thread-safe hash table in parallel mode.

Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-node (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-parallel-timing (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: copy-problem-state (state)
Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-problem-state-without-idb (state)

Copies a problem-state but omits the idb field (leaves it as new empty hash table). Used when the idb will be immediately replaced with a different one.

Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-solution (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-task-queue (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: copy-undo-checkpoint (instance)
Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: copy-update (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Function: copy-worker-stats (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: count-agent-switches (path)

Counts transitions between starred and unstarred agents in PATH.

Package

utilities.

Source

ww-utilities.lisp.

Function: create-action (name duration pre-params precondition eff-params effect init-action)
Package

wouldwork.

Source

ww-installer.lisp.

Function: create-action-state (action state updated-db)

Creates a new wait or non-wait state.

Package

wouldwork.

Source

ww-planner.lisp.

Function: database (state)

Prints the current database for state.
Use as (ut::prt (database state)) as diagnostic in rules & functions.

Package

wouldwork.

Source

ww-structures.lisp.

Function: defer-hybrid-goal (current-node goal-state)

Stores a goal-reaching pair for deferred enumeration after search completes. Called in hybrid mode when a goal is reached.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: del-prop (proposition db)

Effectively removes an atomic proposition from the database.

Package

wouldwork.

Source

ww-support.lisp.

Function: delete-actions (&rest names)

Deletes named actions from *actions* at run-time.

Package

wouldwork.

Source

ww-support.lisp.

Function: delete-proposition (proposition db)
Package

wouldwork.

Source

ww-support.lisp.

Function: deletef-nth-hstack (n hstk)

Deletes the nth entry in a hash stack and returns it.

Package

hstack.

Source

ww-hstack.lisp.

Function: detect-output (lambda-expr)

If a function prints to *standard-output*, then capture the output, otherwise return nil. Returns a fresh simple string to ensure consistent behavior.

Package

wouldwork.

Source

ww-command-tests.lisp.

Function: detect-path-cycle (new-choice)

Check if new-choice immediately undoes the last choice using set-based comparison

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: df-bnb1 (open)

Performs expansion of one node from open. Returns
new successor nodes, (first), or nil if no new nodes generated.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: dfs ()

Main search program.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: diagnose-precondition-failure (action provided-args state)

Diagnose which clause in a precondition fails by evaluating each clause in sequence. Reports the first failing clause with bindings substituted.
ACTION is the action structure.
PROVIDED-ARGS is the list of argument values from the action form. STATE is the current problem-state.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: different (sym1 sym2)

Determines whether two symbols are different.

Package

wouldwork.

Source

ww-support.lisp.

Function: directory-exists-p (directory)

Returns pathname if the directory exists and is a directory. Currently only works with SBCL - but not CLISP!

Package

wouldwork.

Source

ww-interface.lisp.

Function: display-all ()
Package

wouldwork.

Source

ww-settings.lisp.

Function: display-current-parameters ()
Package

wouldwork.

Source

ww-settings.lisp.

Function: display-parallel-parameters ()

Display current parallel search parameter settings.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: display-parallel-timing ()

Display timing breakdown from most recent parallel search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: display-validation-state (state)

Display a state in readable form.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: display-worker-stats ()

Display per-worker statistics from most recent parallel search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: dissect-eff-params (eff-parameter-list)

Returns a list of primitive eff-parameter variables and types.

Package

wouldwork.

Source

ww-support.lisp.

Function: dissect-pre-params (pre-param-list)
Package

wouldwork.

Source

ww-support.lisp.

Function: do-init-action-updates (state)

Checks precondition of each init-action and applies updates.
For backtracking algorithm, uses incremental updates within each assert.

Package

wouldwork.

Source

ww-planner.lisp.

Function: do-integer-conversion ()

Convert all objects to integers, populate integer databases, and compile all functions. This is the main initialization function called during problem loading.

Package

wouldwork.

Source

ww-converter.lisp.

Function: either (&rest types)
Package

wouldwork.

Source

ww-installer.lisp.

Function: empty-hstack (hstk)

Determine if a hash stack is empty.

Package

hstack.

Source

ww-hstack.lisp.

Function: ensure-idb-hash (state)

Ensures the idb-hash is computed and cached for the given state. Returns the state’s idb-hash.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: ensure-start-state-synchronized ()

Converts start state’s hash tables to synchronized versions for parallel mode. Must be called after init-start-state and before search begins.

Package

wouldwork.

Source

ww-initialize.lisp.

Function: enumerate-paths-to-node (node)

Enumerates all paths from the start node to NODE.
Returns a list of paths, where each path is a list of (action instantiations) moves. Paths are in forward order (start to node).
In hybrid mode, uses moves stored in (parent-node . move) pairs.
In standard mode with single parents, returns a single-element list.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: eql* (&rest arguments)
Package

wouldwork.

Source

ww-support.lisp.

Function: estimate-to-goal (state)

Heuristic (h) for estimating distance to a goal state from this state; Return 0 to use no heuristic.

Package

wouldwork.

Source

ww-planner.lisp.

Function: eval-instantiated-spec (instantiated-pre-type-spec &optional state)

Receives possibly nested static or dynamic input from instantiate-type-spec, and evaluates it. Works with state, idb parameter.

Package

wouldwork.

Source

ww-support.lisp.

Function: evaluate-precondition-clause (clause state ?vars ?var-values $vars $var-values let-bindings)

Evaluate a single precondition clause against state.
Returns (values result new-$var-values) where result is T/NIL and new-$var-values contains updated fluent bindings.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: exchange-problem-file (problem-name-str)

Copies problem file to src/problem.lisp so it will be compiled by asdf.

Package

wouldwork.

Source

ww-interface.lisp.

Function: expand (current-node)

Returns the new states.

Package

wouldwork.

Source

ww-planner.lisp.

Function: expand-into-plist (parameters)

Return alternating plist of variable/type from input parameter list.

Package

wouldwork.

Source

ww-support.lisp.

Function: extract-donation-nodes (local-stack num-to-donate)

Extract NUM-TO-DONATE nodes from LOCAL-STACK for donation. Preferentially extracts shallower nodes (larger subtrees). Returns (values donated-nodes remaining-stack).

Strategy: Sort by depth, donate the shallowest half.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: extract-effect-args (action pre-args pre-result)

Extract effect variable values from precondition args and result. Maps precondition variables to effect variables.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: extract-effect-instantiation (action pre-result)

Extracts the effect variable instantiation in canonical form for duplicate detection.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: extract-goal-state-from-solution ()

Extract the final goal state from most recent solution based on *solution-type*.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: extract-symbols (x.y)

Splits a symbol, whose print name contains the delimiter #., into two symbols.

Package

utilities.

Source

ww-utilities.lisp.

Function: f-value-better (succ-state succ-depth)

Computes f-value of current-node to see if it’s better than best solution so far.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: final-charp (final-char sym)

Determines if a symbol has a given final character in its name.

Package

wouldwork.

Source

ww-installer.lisp.

Function: finalize-hybrid-solutions ()

Enumerates all solutions from stored goal-reaching pairs after search completes. Called once when all parent DAGs are fully constructed.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: finalize-parallel-search-results ()

Post-process parallel search results for interface consistency.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: finalize-path-depth (depth)

Records the path depth of a path that terminates.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: find-combination-var-groups (precondition-params)

Extract variable groups from combination parameters in precondition-params. Returns a list of variable groups, e.g., ((?T1 ?T2)) for a 2-way combination. Handles nested parameter structures recursively.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: fix-if-ignore (symbols lambda-expr)

Ignores variable symbols that are not in the lambda-body.

Package

wouldwork.

Source

ww-installer.lisp.

Function: fixed-keys-ht-equal (ht-key1 ht-key2)

Quick equality test with *closed* for two hash tables with the same fixed keys. The equality predicate tests the hash table values, skipping the keys.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: fixed-keys-ht-hash (ht)
Package

wouldwork.

Source

ww-searcher.lisp.

Function: fixedp (relations)

Determines if all relations have $var args, and thus have fixed keys idb.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: fluent-spec-p (spec)

Returns T if spec is or contains fluent variables.

Package

wouldwork.

Source

ww-installer.lisp.

Function: forced-read-mode-p ()

Returns t if read mode has been explicitly forced via *proposition-read-mode*.

Package

wouldwork.

Source

ww-translator.lisp.

Function: forget (sym)

Removes a symbol from the current package.

Package

utilities.

Source

ww-utilities.lisp.

Function: format-action-with-effect-order (action pre-result updated-db)

Returns action name consed with instantiation values in effect-variables order.

Package

wouldwork.

Source

ww-planner.lisp.

Function: format-timing (ms)

Format milliseconds as appropriate time unit.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: freq (&rest run-lengths)

Return the alist of sequences with their respective counts, max first.

Package

wouldwork.

Source

ww-frequencies.lisp.

Function: generate-children (current-node)

Returns the legitimate children of a state. Checks precondition of each action, and if true, then updates db according to action effects.

Package

wouldwork.

Source

ww-planner.lisp.

Function: generate-choices-for-single-combination-bt (action param-combo precondition-result level)

Generate choices by executing effect with incremental updates to *backtrack-state*. Effect modifies state, then changes are undone. Returns choices with forward/inverse ops.

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: generate-fluent-bindings (prop-fluents)

Generates setf forms for binding fluent variables to retrieved values. Optimizes accessor patterns for common cases while handling arbitrary arity.

Package

wouldwork.

Source

ww-translator.lisp.

Function: generate-fluent-instances (args-list)

Generate all combinations of instances for a relation signature, where nil values represent fluent positions.

Package

wouldwork.

Source

ww-installer.lisp.

Function: generate-new-node (current-node succ-state)

Produces a new node for a given successor.
In hybrid mode, stores parent as (parent-node . move) pair.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: generate-new-propositions (vars propositions idxs)

Collects new propositions for each prop in propositions.

Package

wouldwork.

Source

ww-support.lisp.

Function: generate-patroller-cycle-events (object path timings)

Generate events for cycle mode traversal.
For path (a1 a2 a3 a4 a5), generates transitions: a1→a2→a3→a4→a5→a1, then repeats.

The wrap-around segment (aN→a1) uses 1 time unit by default.

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Function: generate-patroller-events (object path mode timings)

Generate the events array for a patroller based on mode. Returns a simple-vector compatible with the happening machinery.

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Function: generate-patroller-reverse-events (object path timings)

Generate events for ping-pong (reverse) mode traversal. For path (a1 a2 a3 a4 a5), generates transitions: a1→a2→a3→a4→a5→a4→a3→a2→a1, then repeats.

Event format matches define-happening: (cumulative-time (not (loc obj from)) (loc obj to))

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Function: generate-proposition-permutations (vars proposition idxs)

Returns list of propositions generated from given proposition replacing items at indices with vars, respectively.

Package

wouldwork.

Source

ww-support.lisp.

Function: generate-root-tasks (start-node)

Generate initial task pool by expanding from START-NODE up to *split-depth-max*. Returns list of nodes (tasks) at the split frontier.

Strategy: BFS-style expansion until we have enough tasks or hit depth limit. Each task is a node that a worker will DFS from.

For graph search: tracks visited states in *closed* shards during generation.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: get-all-nonspecial-vars (fn tree)

Selects one each of non-special variables in the tree satisfying fn.

Package

wouldwork.

Source

ww-installer.lisp.

Function: get-all-vars (fn tree)

Selects one each of all variables in the tree satisfying fn.

Package

wouldwork.

Source

ww-installer.lisp.

Function: get-bound-?vars (tree)

Retrieves the bound ?vars from a code tree.

Package

wouldwork.

Source

ww-installer.lisp.

Function: get-closed-node (state depth)

Retrieve the node stored in *closed* for hybrid mode.
CALLER MUST HOLD THE APPROPRIATE SHARD LOCK in parallel mode.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: get-closed-values (state depth)

Retrieve the closed values for a state.
CALLER MUST HOLD THE APPROPRIATE SHARD LOCK in parallel mode.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: get-complement-prop (proposition)

Derives the complement proposition counterpart from a given proposition.

Package

wouldwork.

Source

ww-support.lisp.

Function: get-database-reference (form flag)

Determines appropriate database reference for proposition evaluation.
Handles static relations, dynamic relations, and happening contexts consistently.

Package

wouldwork.

Source

ww-translator.lisp.

Function: get-fluentless-prop (proposition)

Derives the fluentless proposition counterpart from a full proposition.

Package

wouldwork.

Source

ww-support.lisp.

Function: get-following-happening (act-state object index time direction ref-time)

Derive the following happening update for an object.

Package

wouldwork.

Source

ww-happenings.lisp.

Function: get-new-states (state action updated-dbs)

Creates new states given current state and the new updates.

Package

wouldwork.

Source

ww-planner.lisp.

Function: get-next-event-time (state)

Returns the time of the next happening event, considering all objects.

Package

wouldwork.

Source

ww-planner.lisp.

Function: get-next-node-for-expansion (open)

Returns the node at the top of open.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: get-path-action-agent (path-element)

Extracts the agent from a path element of form (time (action agent ...)).

Package

utilities.

Source

ww-utilities.lisp.

Function: get-pre-lambda-arg-lists (instantiated-spec)

Returns list of instantiations as arg list for a rule precondition.

Package

wouldwork.

Source

ww-support.lisp.

Function: get-precondition-args (action state)

Get precondition argument combinations, handling dynamic vs static actions.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: get-prop-fluent-indices (proposition)
Package

wouldwork.

Source

ww-structures.lisp.

Function: get-prop-fluents (proposition)

Returns the fluent values in an arbitrary proposition.

Package

wouldwork.

Source

ww-translator.lisp.

Function: get-special-vars (tree)

Collects any special declared variables from tree.

Package

wouldwork.

Source

ww-installer.lisp.

Function: get-state-codes ()

User calls this after finding backwards *solutions*.

Package

wouldwork.

Source

ww-support.lisp.

Function: get-wait-happenings (state)
Package

wouldwork.

Source

ww-planner.lisp.

Function: get-worker-stats (worker-id)

Return the stats structure for WORKER-ID.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: goal (state)

Returns t or nil depending on if state is a goal state.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: handle-trace-interception (state action pre-results precondition-variables)

Called from generate-children when target action’s precondition succeeds. Traces each unique instantiation.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: hash-table-present-p (key ht)

Determines if a key is present in ht.

Package

utilities.

Source

ww-utilities.lisp.

Function: hash-table-same-keys-p (ht1 ht2)

Returns t if two hash tables have the same keys.

Package

utilities.

Source

ww-utilities.lisp.

Function: header-p (item)
Package

wouldwork.

Source

ww-validator.lisp.

Function: hstack-p (object)
Package

hstack.

Source

ww-hstack.lisp.

Reader: hstack.keyfn (instance)
Writer: (setf hstack.keyfn) (instance)
Package

hstack.

Source

ww-hstack.lisp.

Target Slot

keyfn.

Reader: hstack.table (instance)
Writer: (setf hstack.table) (instance)
Package

hstack.

Source

ww-hstack.lisp.

Target Slot

table.

Reader: hstack.vector (instance)
Writer: (setf hstack.vector) (instance)
Package

hstack.

Source

ww-hstack.lisp.

Target Slot

vector.

Function: idb-in-open (succ-state open &optional succ-depth)

Determines if a state’s idb matches the contents of a key in open’s table. Uses idb-hash for O(1) lookup with idb verification for collision safety. In hybrid mode, also requires depth match (succ-depth must be provided). Returns the node in open or nil.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: in-src (filename)

Shortcut to add filename to current package directory’s src folder

Package

wouldwork.

Source

ww-interface.lisp.

Function: init ()
Package

wouldwork.

Source

ww-initialize.lisp.

Function: init-start-state ()
Package

wouldwork.

Source

ww-initialize.lisp.

Function: initial-best-bound ()

Return the initial value for *best-bound* based on *solution-type*. All optimization types use ’lower is better’ convention internally.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: initialize-act-state (action state updated-db)

Returns a new child of state incorporating action updated-db list, or nil if repeating previous wait action.

Package

wouldwork.

Source

ww-planner.lisp.

Function: initialize-closed-infrastructure (hash-test)

Legacy compatibility: delegates to infrastructure module.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: initialize-closed-locks ()

Legacy compatibility: no-op, locks are in shards now.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: initialize-closed-shard-locks ()

Create the vector of per-shard mutexes.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: initialize-closed-shards (hash-test)

Initialize the sharded closed table infrastructure. HASH-TEST is ’equal (hybrid mode) or ’eql (standard mode). Creates N independent hash tables and N mutexes.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: initialize-hybrid-mode ()

Checks constraints for hybrid graph search mode.
Returns T if hybrid mode should activate, NIL otherwise.
Prints diagnostic messages when *solution-type* is EVERY but constraints prevent hybrid mode.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: initialize-worker-stats (num-workers)

Create fresh statistics structures for all workers.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: install-action (name duration pre-params precondition eff-params effect)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-complementary-relations (positives->negatives)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-constraint (form)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-dynamic-relations (relations)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-goal (form)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-happening (object plist)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-init (literals)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-init-action (name duration pre-params precondition eff-params effect)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-patroller (object slots)

Install a patroller as a happening with auto-generated events.
The patroller’s initial location must be specified separately via define-init.
Integration with existing happening machinery:
- Stores :events as simple-vector (same format as define-happening)
- Sets :repeat to t (patrollers always cycle)
- Registers in *happening-names* for compilation
- Interrupt lambda stored in :interrupt-lambda for compile-all-functions

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Function: install-query (name args body)

Revised query function installation with read-only semantics

Package

wouldwork.

Source

ww-installer.lisp.

Function: install-static-relations (relations)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-types (types&instances)
Package

wouldwork.

Source

ww-installer.lisp.

Function: install-update (name args body)

Installs a user-defined update function.
Update functions translate according to current *algorithm* setting. Init-action processing (do-init-action-updates) handles both formats: - Depth-first: changes as hash-table with integer keys
- Backtracking: changes as list of (forward inverse) pairs

Package

wouldwork.

Source

ww-installer.lisp.

Function: instantiate-type-spec (pre-type-spec)

Given the pre-type-spec from dissect-pre-params,
eg (product gate (get-remaining? ladder) (product fan fan)),
instantiate all of the included types,
eg (product (gate1 gate2) (get-remaining? ladder) (product (fan1 fan2) (fan1 fan2))).

Package

wouldwork.

Source

ww-support.lisp.

Function: interleave+ (lst)

Inserts a + sign between list items.

Package

utilities.

Source

ww-utilities.lisp.

Function: intern-symbol (&rest args)

Interns a symbol created by concatenating args. Based on symb in Let Over Lambda.

Package

utilities.

Source

ww-utilities.lisp.

Function: interrupt-condition (object act-state)

Determines if the interrupt function for object is satisfied in this state; eg, if the object is currently being jammed, and therefore disabled.

Package

wouldwork.

Source

ww-happenings.lisp.

Function: intersperse (element lst)

Returns a list with element inserted at odd indexed locations.

Package

utilities.

Source

ww-utilities.lisp.

Function: is-complete-solution ()

Hook: Check if we have reached a complete solution

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: kill-condition (object state)

Determines if the kill condition for object is satisfied in this state; eg, if a mine has moved into the agent’s location, killing them.

Package

wouldwork.

Source

ww-happenings.lisp.

Function: length-hstack (hstk)
Package

hstack.

Source

ww-hstack.lisp.

Function: lisp-type-p (type)

Determines if a symbol is a valid Common Lisp type.

Package

wouldwork.

Source

ww-validator.lisp.

Function: list-all-problems (&optional prettyp)

List all problem names in the problem folder. One-per-line: (list-all t) or (list-all :pretty)

Package

wouldwork.

Source

ww-interface.lisp.

Function: list-database (idb)

Used to printout idb in propositional form.

Package

wouldwork.

Source

ww-structures.lisp.

Function: list-problem-files-plist (&optional prefix suffix)

Return a plist of files in the ’src’ directory that start with ’problem-’.
The key is the filename without ’problem-’ and ’.lisp’.
The value is the full path of the file. Uses the root directory of the ’wouldwork’ system.

Package

wouldwork.

Source

ww-interface.lisp.

Function: list-problem-names ()
Package

wouldwork.

Source

ww-interface.lisp.

Function: load-problem (problem-name-str)

Given a problem-name, replace the content of the problem.lisp file by the content of the correponsing problem file, and then reload everything.

Package

wouldwork.

Source

ww-interface.lisp.

Function: lookup (key plist &key test default)

Key value lookup in plist with #’string= or any other function as test. The plist-related getf can only handle eql.

Package

wouldwork.

Source

ww-interface.lisp.

Function: lstrip (str prefix)

Removes prefix from str (only 1x).

Package

wouldwork.

Source

ww-interface.lisp.

Function: make-action (&key name pre-defun-name eff-defun-name duration precondition-params precondition-variables precondition-types precondition-type-inst dynamic precondition-args precondition-form init precondition-lambda iprecondition-lambda effect-variables effect-adds effect-lambda ieffect-lambda)
Package

wouldwork.

Source

ww-structures.lisp.

Function: make-choice (&key act forward-update inverse-update level)
Package

wouldwork.

Source

ww-backtracker.lisp.

Function: make-hstack (&key vector table keyfn)
Package

hstack.

Source

ww-hstack.lisp.

Function: make-ht-set (&rest args &key initial-contents &allow-other-keys)

Makes a wouldwork hash-table that works as a set container for the user.

Package

wouldwork.

Source

ww-support.lisp.

Function: make-new-task-queue (&optional size)

Create a new task queue with specified initial size.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: make-node (&key state depth parent)
Package

wouldwork.

Source

ww-structures.lisp.

Function: make-parallel-timing (&key task-generation-ms worker-search-ms finalization-ms total-ms)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: make-problem-state (&key name instantiations happenings time value heuristic idb hidb idb-hash)
Package

wouldwork.

Source

ww-structures.lisp.

Function: make-solution (&key depth time value path goal)
Package

wouldwork.

Source

ww-structures.lisp.

Function: make-task-queue (&key buffer head tail count mutex waitqueue done-p active-workers)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: make-undo-checkpoint (&key start-state goal)
Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: make-update (&key changes value instantiations followups)
Package

wouldwork.

Source

ww-structures.lisp.

Function: make-worker-stats (&key states-processed repeated-states program-cycles max-depth accumulated-depths num-paths solutions-found nodes-donated donation-events)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: map-into-tree-atoms (fn tree)

Returns a new tree with all atoms replaced by the value of fn.

Package

utilities.

Source

ww-utilities.lisp.

Function: maybe-donate-work (local-stack task-queue worker-id stats)

Check if donation is appropriate and donate if so. Returns the (possibly reduced) local stack.
Donation occurs when:
1. Work donation is enabled
2. Queue needs work (empty)
3. Local stack exceeds threshold
4. Search is not terminating

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: maybe-report-parallel-progress (worker-id)

Report progress if enough time has passed. Only one worker reports at a time.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: merge-idb-hidb (state)

Merges the two databases of state.

Package

wouldwork.

Source

ww-translator.lisp.

Function: merge-sort (item items predicate)

Adds an item to list of items sorted.

Package

utilities.

Source

ww-utilities.lisp.

Function: merge-sort-list (list &key pred key)
Package

utilities.

Source

ww-utilities.lisp.

Function: narrate (string state depth)
Package

wouldwork.

Source

ww-searcher.lisp.

Function: narrate-bt (string choice depth)

Enhanced narration function with refined progressive debug level disclosure

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: next-action-valid-p (state action-name args)

Check if action with given args can execute from state.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: ninsert-list (new-element position lst)

Destructively inserts new element in a list at given position. For position 0, returns new list with element prepended. For position > length, extends list with NILs then inserts.

Package

utilities.

Source

ww-utilities.lisp.

Function: node-can-improve-bound-p (node local-bound)

Check if NODE can possibly lead to a solution better than LOCAL-BOUND.
Uses optimistic estimate (current depth/value as lower bound on final solution). Returns T if worth exploring, NIL if should prune.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: node-p (object)
Package

wouldwork.

Source

ww-structures.lisp.

Function: node-parent-entries (node)

Returns the parent entries of NODE for hybrid mode path enumeration. Returns list of (parent-node . move) pairs.
Only valid in hybrid mode; returns nil otherwise.

Package

wouldwork.

Source

ww-structures.lisp.

Function: node-parents-list (node)

Returns the parent node(s) of NODE as a list.
Normalizes access for both standard mode (single parent) and hybrid mode (parent-move pairs). In hybrid mode, extracts just the parent nodes from (parent-node . move) pairs.

Package

wouldwork.

Source

ww-structures.lisp.

Reader: node.depth (instance)
Writer: (setf node.depth) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

depth.

Reader: node.parent (instance)
Writer: (setf node.parent) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

parent.

Reader: node.state (instance)
Writer: (setf node.state) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

state.

Function: node.state.idb (node)

Gets the idb of a node.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: node.state.idb-hash (node)

Gets the cached idb-hash of a node’s state.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: normalize-fluent-spec (spec)

Strips $ prefix from fluent specifications.

Package

wouldwork.

Source

ww-installer.lisp.

Function: nth-hstack (n hstk)
Package

hstack.

Source

ww-hstack.lisp.

Function: on-current-path (succ-state current-node)

Determines if a successor is already on the current path from the start state.
Uses cached idb-hash for O(1) comparison with equalp verification on hash collision.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: parallel-help ()

Display help information for parallel search configuration.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: parallel-timing-p (object)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: parallel-worker (worker-id task-queue)

Main worker loop: fetch tasks and perform local DFS. May also receive donated work from other workers. Returns when no more tasks available.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: params ()
Package

wouldwork.

Source

ww-settings.lisp.

Function: parse-patroller-slots (slots)

Parse the slot-value pairs from define-patroller into a plist. Recognized slots: path, mode, timings, interrupt, rebound, kill

Package

wouldwork.

Source

ww-patroller-installer.lisp.

Function: parse-problem-name (problem-filename)

Extract problem name from filename (e.g., ’problem-blocks3.lisp’ -> ’blocks3’)

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: peek-hstack (hstk)
Package

hstack.

Source

ww-hstack.lisp.

Function: pop-hstack (hstk)

Pops an element from hstack’s vector and removes it from the table. Error if hstk empty.

Package

hstack.

Source

ww-hstack.lisp.

Function: print-hash-table-delta (state changes)

Prints delta for depth-first algorithm (hash-table format).

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: print-ht (ht)

Prints a hash table line by line.

Package

utilities.

Source

ww-utilities.lisp.

Function: print-list-delta (state changes)

Prints delta for backtracking algorithm (list format).
Format is (forward-list inverse-list) where forward-list contains propositions or (not proposition) forms.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: print-optimal-solutions (&optional solutions)

Prints optimal solutions from SOLUTIONS list.
Optimal solutions: (1) begin with unstarred agent, (2) minimize agent switches. Requires all solutions to have the same depth.

Package

utilities.

Source

ww-utilities.lisp.

Function: print-problem-state (state &optional stream depth)
Package

wouldwork.

Source

ww-structures.lisp.

Function: print-search-progress ()

Print search progress using appropriate global variables

Package

wouldwork.

Source

ww-searcher.lisp.

Function: print-search-tree ()
Package

wouldwork.

Source

ww-searcher.lisp.

Function: print-state-delta (state updated-db)

Prints the difference between initial state and updated state.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: print-state-propositions (state)

Prints all propositions in the state.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: print-test-header (problem-name &optional algorithm)

Print test header for a problem

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: printout-search-progress ()

Printout of nodes expanded so far during search modulo reporting interval.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: printout-solution (soln)
Package

wouldwork.

Source

ww-searcher.lisp.

Function: probe (current-node name instantiations depth &optional count)

Breaks when the current node matches action name, instantiations, depth, and count from start–eg, (put (a b) 1).

Package

wouldwork.

Source

ww-searcher.lisp.

Function: problem-state-p (object)
Package

wouldwork.

Source

ww-structures.lisp.

Reader: problem-state.happenings (instance)
Writer: (setf problem-state.happenings) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

happenings.

Reader: problem-state.heuristic (instance)
Writer: (setf problem-state.heuristic) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

heuristic.

Reader: problem-state.hidb (instance)
Writer: (setf problem-state.hidb) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

hidb.

Reader: problem-state.idb (instance)
Writer: (setf problem-state.idb) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

idb.

Reader: problem-state.idb-hash (instance)
Writer: (setf problem-state.idb-hash) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

idb-hash.

Reader: problem-state.instantiations (instance)
Writer: (setf problem-state.instantiations) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

instantiations.

Reader: problem-state.name (instance)
Writer: (setf problem-state.name) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

name.

Reader: problem-state.time (instance)
Writer: (setf problem-state.time) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

time.

Reader: problem-state.value (instance)
Writer: (setf problem-state.value) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

value.

Function: probs ()
Package

wouldwork.

Alias for

list-problem-names.

Function: process-followups (net-state updated-db)

Triggering forms are saved previously during effect apply.

Package

wouldwork.

Source

ww-planner.lisp.

Function: process-min-max-value (succ-state)

Determines if succ-state value is an improvement, and if so updates *best-states*.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: process-partitioned-parallel ()

Main entry point for partitioned parallel search.
Generates tasks, spawns workers, waits for completion, aggregates results.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: process-solution (solution run-length)

Installs sequences of run-length in a solution into a hash table.

Package

wouldwork.

Source

ww-frequencies.lisp.

Function: process-successors (succ-states current-node open)

Processes successor states: checks goals, handles duplicates, generates nodes. In hybrid mode, accumulates parent pointers for multi-path enumeration.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: profile ()

Deterministically profiles Wouldwork.

Package

wouldwork.

Source

ww-support.lisp.

Function: prompt-user-action (problem-name)

Prompt user for Continue/Skip/All/Quit. Returns (values should-process continue-all)

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: proposition-less-p (p1 p2)

Comparison function for sorting propositions by predicate name.

Package

wouldwork.

Source

ww-action-trace.lisp.

Reader: pt-finalization-ms (instance)
Writer: (setf pt-finalization-ms) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

finalization-ms.

Reader: pt-task-generation-ms (instance)
Writer: (setf pt-task-generation-ms) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

task-generation-ms.

Reader: pt-total-ms (instance)
Writer: (setf pt-total-ms) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

total-ms.

Reader: pt-worker-search-ms (instance)
Writer: (setf pt-worker-search-ms) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

worker-search-ms.

Function: push-hstack (elt hstk &key new-only)

Pushes an element onto hstack’s vector and table. Returns the hstack and whether the element was added.

Package

hstack.

Source

ww-hstack.lisp.

Function: read-from-file (filename &optional default)
Package

wouldwork.

Source

ww-interface.lisp.

Function: read-hash-table-from-file (filename)
Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: read-init-vals (vals-file)

Load critical initialization parameters from vals.lisp if it exists.
Sets *problem-name*, *algorithm*, and *debug* for proper loading.
Returns the problem-name string for eval-when path construction, or nil if file absent.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Function: rebound-condition (object new-state)

Determines if a rebound condition is satisfied in this state.

Package

wouldwork.

Source

ww-happenings.lisp.

Function: reconstruct-solution-path ()

Reconstruct the solution path from the choice stack with correct cumulative time

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: record-move (state)

Returns some user-friendly representation of the move from the parent state to the current state.

Package

wouldwork.

Source

ww-planner.lisp.

Function: record-solution-path (goal-node)

Recovers a path from a goal node back to the start node following parent links.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: refresh ()

Refreshes the current problem.lisp file–eg, after editing it. Preserves REPL-set parameters not overridden in the problem file.

Package

wouldwork.

Source

ww-interface.lisp.

Function: register-choice-bt (choice action level)

Register a choice by applying its forward operations to *backtrack-state*.

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: register-dynamic-object (object type-name)

Registers a dynamically-created object in the integer constants system and adds the type proposition to the static database.
This function MUST be called immediately after creating any dynamic object (via intern, gensym, etc.) and BEFORE using it in any propositions. Purpose:
- Assigns an integer code enabling database lookups for the new object - Creates type proposition (type-name object) in *static-idb*
- Makes the object discoverable via type queries (e.g., (beam ?b))
- Ensures thread-safe registration in parallel search environments Parameters:
- object: The dynamically-created symbol (e.g., BEAM3)
- type-name: The type it belongs to (e.g., BEAM)
Returns: The registered object (for convenient chaining)
Example Usage:
(setq $new-beam (intern (format nil "BEAM~D" $index))) (register-dynamic-object $new-beam ’beam)
;; Now $new-beam can be safely used in propositions like:
;; (beam-segment $new-beam ?source ?target $x $y)

Package

wouldwork.

Source

ww-converter.lisp.

Function: register-parallel-solution (current-node goal-state worker-id)

Thread-safe solution registration during parallel search.
Updates *solutions*, *unique-solutions*, and *best-bound* as needed.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: register-solution (current-node goal-state)

Inserts a new solution on the list of *solutions*.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: register-solution-bt (level)

Register a solution found via backtracking using the choice stack

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: remove-at-indexes (idxs lst)

Removes items at given indexes from a list.

Package

utilities.

Source

ww-utilities.lisp.

Function: report-binding-mismatches ($vars $var-values effect-vars provided-args)

Report mismatches between $var values bound from database evaluation vs. values provided in the action form.

$VARS is the list of fluent variable names from precondition. $VAR-VALUES is the list of values bound during clause evaluation. EFFECT-VARS is the list of effect variable names. PROVIDED-ARGS is the list of values from the action form.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: report-parallel-progress (worker-id)

Print current search progress aggregated across workers.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: report-state-mismatch (action provided-args actual-effect-args)

Report mismatches between provided argument values and actual bound values.
ACTION is the action structure.
PROVIDED-ARGS is the list of values from the action form. ACTUAL-EFFECT-ARGS is the effect-args extracted from a passing precondition.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: report-validation-failure (index action-form reason state)

Report a validation failure with diagnostics.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: reset-global-hash-tables ()

Clear all global hash tables and reset global lists between problem loads. Critical for parallel mode where sb-ext:defglobal prevents reinitialization. In parallel mode (*threads* > 0), define-global uses sb-ext:defglobal which only evaluates initialization forms ONCE. On subsequent ASDF reloads, the variables remain bound to their previous values, causing state contamination between sequential problem loads.
This function must execute at top-level in ww-preliminaries.lisp so it runs on every system reload, before problem files populate the hash tables with new data.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Function: reset-parallel-control-flags ()

Reset all parallel control flags for a new search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: reset-parameters ()

Resets global parameters to defaults

Package

wouldwork.

Source

ww-interface.lisp.

Function: reset-user-syms (symbols)

Unintern symbols and unbind any functions stored in function name lists.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Function: retrieve (file)

Retrieves one or more objects from a file.

Package

utilities.

Source

ww-utilities.lisp.

Function: revise (db literals)

Updates a database given a simple list of atomic propositions.

Package

wouldwork.

Source

ww-support.lisp.

Function: rstrip (str suffix)

Removes suffix from str (only 1x).

Package

wouldwork.

Source

ww-interface.lisp.

Function: save (object file)

Saves an object to a file so it can be read in later.

Package

utilities.

Source

ww-utilities.lisp.

Function: save-to-file (list filename)
Package

wouldwork.

Source

ww-interface.lisp.

Function: save-undo-checkpoint ()

Save current state after ww-continue completes modifications. Captures continuation *start-state* and *goal* for potential undo.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: search-backtracking ()

Main entry point for backtracking search with algorithm-compatible processing

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: search-serial ()

Branch & Bound DFS serial search.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: select-matching-effect (updated-dbs state action next-action-form)

Select the effect that is consistent with the next action.
If only one effect, return it.
If multiple effects and no next action, try goal satisfaction.
If multiple effects with next action, find one that enables next action.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: set-difference-ht-set (ht1 ht2)

Returns a new hash table that represents the set difference of HT1 and HT2.

Package

wouldwork.

Source

ww-support.lisp.

Function: shard-index-for-hash (hash)

Compute shard index from hash value using bitmask.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: shard-index-for-state (state)

Compute shard index for a problem state.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: simple-break ()

Call to simplify debugger printout on a break.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: size-hstack (hstk)
Package

hstack.

Source

ww-hstack.lisp.

Function: solution-better-p (new-soln old-soln)

Returns T if NEW-SOLN is better than OLD-SOLN based on *solution-type*.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: solution-equivalent-p (sol1 sol2)

Compare solutions for equivalence by goal state.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: solution-p (object)
Package

wouldwork.

Source

ww-structures.lisp.

Reader: solution.depth (instance)
Writer: (setf solution.depth) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

depth.

Reader: solution.goal (instance)
Writer: (setf solution.goal) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

goal.

Reader: solution.path (instance)
Writer: (setf solution.path) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

path.

Reader: solution.time (instance)
Writer: (setf solution.time) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

time.

Reader: solution.value (instance)
Writer: (setf solution.value) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

value.

Function: solve ()
Package

wouldwork.

Source

ww-interface.lisp.

Function: sort-either-types (relation)

Alphabetically sorts the ’either’ types in a relation.

Package

wouldwork.

Source

ww-installer.lisp.

Function: sort-symbols (list-of-symbols)

Sorts a list of symbols alphabetically.

Package

utilities.

Source

ww-utilities.lisp.

Function: state-bound-better-p (new-bound current-bound)

Returns T if NEW-BOUND is better than CURRENT-BOUND. Both values should be in ’lower is better’ convention.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: string-prefix-p (prefix str)

Return T if PREFIX is a prefix of STR, otherwise NIL.

Package

wouldwork.

Source

ww-interface.lisp.

Function: string-suffix-p (suffix str)

Return T if SUFFIX is a suffix of STR, otherwise NIL.

Package

wouldwork.

Source

ww-interface.lisp.

Function: strip-name (str prefix suffix)

Removes prefix and suffix from str.

Package

wouldwork.

Source

ww-interface.lisp.

Function: subspec-p (item)
Package

wouldwork.

Source

ww-validator.lisp.

Function: subst-bindings-recursive (form bindings)

Recursively substitute bindings in form.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: subst-int-code (code-tree)
Package

wouldwork.

Source

ww-converter.lisp.

Function: subst-items-at-ascending-indexes (items idxs lst)

Substitutes for elements at given indexes in a list. Indexes & items must correspond and be in ascending order.

Package

utilities.

Source

ww-utilities.lisp.

Function: substitute-bindings (form ?vars ?var-values $vars $var-values)

Substitute variable bindings into a form for display. Replaces ?vars and $vars with their corresponding values.

Package

wouldwork.

Source

ww-solution-validation.lisp.

Function: summarize-search-results (condition)
Package

wouldwork.

Source

ww-searcher.lisp.

Function: symmetric-type-indexes (types)

Returns the set of type indexes for the multi-types of a symmetric relation.

Package

wouldwork.

Source

ww-installer.lisp.

Function: task-queue-p (object)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: test ()

Run standard test suite using depth-first search.

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: test-bt ()

Run test problems using backtracking algorithm to certify backtracking functionality. This parallels the standard test function but forces *algorithm* to backtracking.

Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: test-commands ()

Run a series of tests to exercise potential user REPL commands.

Package

wouldwork.

Source

ww-command-tests.lisp.

Function: total-parallel-frontier ()

Legacy compatibility: returns 0 since we don’t track global frontier.

Package

wouldwork.

Source

ww-parallel.lisp.

Reader: tq-active-workers (instance)
Writer: (setf tq-active-workers) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

active-workers.

Reader: tq-buffer (instance)
Writer: (setf tq-buffer) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

buffer.

Reader: tq-count (instance)
Writer: (setf tq-count) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

count.

Reader: tq-done-p (instance)
Writer: (setf tq-done-p) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

done-p.

Function: tq-empty-p (queue)

Returns T if queue has no items. Caller should hold lock.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-grow-buffer (queue)

Double the queue buffer size. Caller must hold lock.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Reader: tq-head (instance)
Writer: (setf tq-head) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

head.

Reader: tq-mutex (instance)
Writer: (setf tq-mutex) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

mutex.

Function: tq-needs-work-p (queue)

Check if the task queue needs work (empty or nearly empty). Non-blocking check for donation decisions.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-pop-blocking (queue)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-push (queue item)

Push ITEM onto the queue. Thread-safe, grows buffer if needed.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-push-many (queue items)

Push multiple ITEMS onto the queue efficiently. Thread-safe.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-register-worker (queue)

Register a worker as active. Call before worker starts processing.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-signal-done (queue)

Signal that no more tasks will be added. Wake all waiting workers.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Reader: tq-tail (instance)
Writer: (setf tq-tail) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

tail.

Function: tq-try-pop (queue)

Non-blocking pop. Returns (values item t) or (values nil nil). Thread-safe.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: tq-waiting-workers-p (queue)

Check if any workers are waiting for work.
Returns T if active-workers < total workers expected.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Reader: tq-waitqueue (instance)
Writer: (setf tq-waitqueue) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

waitqueue.

Function: trace-action% (action-name)

Runs search until ACTION-NAME’s precondition succeeds, then traces a unique instantiation. User can interrupt search at any time with Ctrl-C.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: trace-action-instantiation (state action pre-result instantiation)

Traces a single action instantiation from current state through final delta.

Package

wouldwork.

Source

ww-action-trace.lisp.

Function: translate (form flag)

Beginning translator for all forms in actions.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-assert (form flag)

For depth-first, translates an assert statement with selective write-mode context.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-assert-bt (form flag)

For backtracking with incremental updates, translates an assert statement. Applies updates directly to state (incremental) while tracking both forward and inverse operations.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-bind (form flag)

Revised binding translation with unified state reference strategy.
Translates binding operations like (bind (loc ?obj $area)) where fluent variables get bound to values retrieved from the database. Always performs read-only queries regardless of syntactic context.
Returns:
- t if proposition found and variables successfully bound
- nil if proposition not found in database
Side effects:
- Sets fluent variables to corresponding values from retrieved proposition

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-case (form flag)

Translates a case statement.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-cond (form flag)

Translates a cond statement by converting to nested if statements.
Each cond clause (test result1 result2 ...) becomes an if branch. Leverages translate-conditional for all semantic complexity. Structure: (cond (test1 result1...) (test2 result2...) ...) Translation strategy:
- Recursively converts clauses to nested if statements from back to front - Multiple result forms wrapped in do (translates to progn)
- Bare test clauses return test value if true (standard CL semantics) - Final else defaults to nil
- Delegates all context handling to translate-conditional

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-conditional (form flag)

Conditional translation with proper read-mode isolation.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-connective (form flag)

Translates logical connectives (and, or, etc.) by recursively translating all operands with consistent context propagation. Preserves the original connective structure while ensuring each operand is translated according to the current context flag.
Context Behaviors:
- pre: All operands become read operations against original state
- eff: All operands follow read/write determination based on syntactic context Read-mode propagation: Connectives preserve current *proposition-read-mode* context, allowing sub-forms to make appropriate read/write decisions.
Examples:
(and (connected ?a ?b) (color ?a blue))
→ Precondition: Both operands query state
→ Effect: Both operands update state (unless in read-mode)

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-do (form flag)

Translates a simple set of clauses.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-doall (form flag)

DOALL translation with translation-time quantifier context.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-equivalent (form flag)

Translates equivalence by forcing read operations on all operands

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-existential (form flag)

Existential translation with context-dependent semantics.
Pre: Query semantics returning T/NIL based on satisfaction Eff: Assertion semantics - assert first satisfying instantiation

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-fluent-atom (form flag)

Translates propositions with fluents using standardized database reference.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-followup (form flag)
Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-function-call (form flag)

Corrected function call translation with robust update function detection

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-let (form flag)

Translates a let clause, including binding forms.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-list (form flag)

Most basic form translation.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-mvsetq (form flag)

Translates a multiple-value-setq clause.
Always returns t to maintain logical continuation semantics.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-negative-relation (form flag)

Unified negative relation translation with incremental updates for backtracking.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-positive-relation (form flag)

Unified positive relation translation with context-aware read/write determination. For backtracking: applies changes incrementally while tracking forward and inverse.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-print (form flag)

Translates a print statement for debugging actions.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-proposition (form flag)

Distinguishes fluent from non-fluent propositions.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-setq (form flag)

Translates a setq statement. Used to assign a variable the value of a function. Always returns t, even if nil is assigned.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-simple-atom (form flag)

Example usage of get-state-reference with proper database selection logic.
Eg, (velocity ?car wheel1 50) -> (list ’velocity ?car ’wheel1 50) with no fluents.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-universal (form flag)

Universal translation with translation-time quantifier context.

Package

wouldwork.

Source

ww-translator.lisp.

Function: translate-ww-loop (form flag)

WW-loop translation with translation-time context override.

Package

wouldwork.

Source

ww-translator.lisp.

Function: transpose (list-of-equi-length-lists)

Regroups all first elements together, second elements together, etc into a new list-of-lists. Changes instantiate-types into arg format for some, every, etc. ((a b) (c d) (e f)) -> ((a c e) (b d f))

Package

utilities.

Source

ww-utilities.lisp.

Function: trim-1st-char (sym)

Trims the first character from a symbol–eg, $block -> block.

Package

wouldwork.

Source

ww-validator.lisp.

Function: troubleshoot (error-msg &rest args)
Package

wouldwork.

Source

ww-support.lisp.

Function: type-or-query-or-either-p (item)
Package

wouldwork.

Source

ww-validator.lisp.

Reader: undo-checkpoint-goal (instance)
Writer: (setf undo-checkpoint-goal) (instance)
Package

wouldwork.

Source

ww-goal-chaining.lisp.

Target Slot

goal.

Function: undo-checkpoint-p (object)
Package

wouldwork.

Source

ww-goal-chaining.lisp.

Reader: undo-checkpoint-start-state (instance)
Writer: (setf undo-checkpoint-start-state) (instance)
Package

wouldwork.

Source

ww-goal-chaining.lisp.

Target Slot

start-state.

Function: undo-choice-bt (choice action level)

Undo a choice from the current state with time reversal and stack management

Package

wouldwork.

Source

ww-backtracker.lisp.

Function: union-ht-set (&rest set-hts)

Unions two hash tables keys. Assumes values are all t and have the same :test function.

Package

wouldwork.

Source

ww-support.lisp.

Function: update (db literal)

For depth-first, single add or delete from db. Returns the literal for change tracking.

Package

wouldwork.

Source

ww-support.lisp.

Function: update-bt (db literal)

For backtracking, single add or delete from db.
Returns the update proposition as first value.
For fluent updates, returns the previous literal as second value.

Package

wouldwork.

Source

ww-support.lisp.

Function: update-function-p (function-name)

Robust update function detection using multiple criteria

Package

wouldwork.

Source

ww-translator.lisp.

Function: update-is-inconsistent (updated-db)

Returns T if update contains the inconsistent-state marker.
Handles both depth-first (hash-table) and backtracking (list) representations.

Package

wouldwork.

Source

ww-planner.lisp.

Function: update-max-depth-explored (succ-depth)
Package

wouldwork.

Source

ww-searcher.lisp.

Function: update-open-if-succ-better (open-node succ-state)

Determines if f-value of successor is better than open state, and updates it.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: update-p (object)
Package

wouldwork.

Source

ww-structures.lisp.

Function: update-search-tree (state depth message)
Package

wouldwork.

Source

ww-searcher.lisp.

Function: update-search-tree-bt (choice depth message)
Package

wouldwork.

Source

ww-backtracker.lisp.

Function: update-start-state-from-goal (goal-state)

Update *start-state* with all components from goal-state. Preserves temporal continuity: time, happenings, databases.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: update-statistics (level)

Update search statistics.

Package

wouldwork.

Source

ww-backtracker.lisp.

Reader: update.changes (instance)
Writer: (setf update.changes) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

changes.

Reader: update.followups (instance)
Writer: (setf update.followups) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

followups.

Reader: update.instantiations (instance)
Writer: (setf update.instantiations) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

instantiations.

Reader: update.value (instance)
Writer: (setf update.value) (instance)
Package

wouldwork.

Source

ww-structures.lisp.

Target Slot

value.

Function: user-or-lisp-type-p (type)

Determines if a symbol is either a user-defined type or a lisp type.

Package

wouldwork.

Source

ww-validator.lisp.

Function: validate-bind-form (form)

Validates bind form structure and proposition format. Ensures proper syntax before translation proceeds.

Package

wouldwork.

Source

ww-translator.lisp.

Function: validate-continuation-preconditions ()

Verify system state allows continuation.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Function: validate-global-invariants (current-node succ-state)

Validate all registered global invariants on the given succ-state. Returns T if all invariants pass, NIL if any fail.
If current-node is nil, this is a start state validation.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: validate-parallel-settings ()

Validate parallel search settings and report any issues. Returns T if all settings are valid, NIL if issues found.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: validate-start-state-consistency ()

Checks if start state contains inconsistent-state marker. Errors out if initial state failed to converge.

Package

wouldwork.

Source

ww-initialize.lisp.

Function: varp (sym)
Package

wouldwork.

Source

ww-validator.lisp.

Function: vectorize (lists)

Turns a list of lists into vector vectors.

Package

wouldwork.

Source

ww-support.lisp.

Function: walk-tree (fun tree)

Apply fun to each cons and atom in tree.

Package

utilities.

Source

ww-utilities.lisp.

Function: worker-local-dfs (task-node worker-id stats task-queue)

Perform complete DFS subtree search starting from TASK-NODE.
Uses local stack. Updates STATS (worker-local, no locking).
May donate work back to TASK-QUEUE when other workers are starving. Returns when subtree exhausted or termination signaled.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: worker-process-successors-phase1 (succ-states current-node worker-id stats)

Process successor states with full graph search support. Returns list of new successor nodes, or ’FIRST-FOUND.

For tree search: cycle detection on current path only.
For graph search: sharded closed table with atomic check+update.

Package

wouldwork.

Source

ww-parallel.lisp.

Function: worker-stats-p (object)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: write-hash-table-to-file (hash-table filename)
Package

wouldwork.

Source

ww-problem-tests.lisp.

Function: write-operation-p (flag)

Returns t if we should perform write operations (database updates).
Write operations occur in effect contexts unless read mode is explicitly forced.

Package

wouldwork.

Source

ww-translator.lisp.

Reader: ws-accumulated-depths (instance)
Writer: (setf ws-accumulated-depths) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

accumulated-depths.

Reader: ws-donation-events (instance)
Writer: (setf ws-donation-events) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

donation-events.

Function: ws-finalize-path (stats depth)

Record a terminated path at DEPTH.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: ws-inc-cycles (stats)

Increment program-cycles for worker.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: ws-inc-repeated (stats)

Increment repeated-states for worker.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: ws-inc-solutions (stats)

Increment solutions-found for worker.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: ws-inc-states (stats count)

Increment states-processed for worker.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Reader: ws-max-depth (instance)
Writer: (setf ws-max-depth) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

max-depth.

Reader: ws-nodes-donated (instance)
Writer: (setf ws-nodes-donated) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

nodes-donated.

Reader: ws-num-paths (instance)
Writer: (setf ws-num-paths) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

num-paths.

Reader: ws-program-cycles (instance)
Writer: (setf ws-program-cycles) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

program-cycles.

Reader: ws-repeated-states (instance)
Writer: (setf ws-repeated-states) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

repeated-states.

Reader: ws-solutions-found (instance)
Writer: (setf ws-solutions-found) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

solutions-found.

Reader: ws-states-processed (instance)
Writer: (setf ws-states-processed) (instance)
Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Target Slot

states-processed.

Function: ws-update-max-depth (stats depth)

Update max-depth if DEPTH is greater.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Function: ww-reset ()

Delete problem.lisp, then reload wouldwork with default problem.

Package

wouldwork.

Source

ww-preliminaries.lisp.

Function: ww-solve ()

Runs a branch & bound search on the problem specification.

Package

wouldwork.

Source

ww-searcher.lisp.

Function: ww-undo ()

Restore state from most recent ww-continue.
Allows user to adjust parameters and retry from the same point. Can be called multiple times to retry different approaches.

Package

wouldwork.

Source

ww-goal-chaining.lisp.


6.2.5 Generic functions

Generic Function: show (object &rest rest &key sort-by)

Displays an object in a user-friendly format.

Package

utilities.

Source

ww-utilities.lisp.

Methods
Method: show (object &rest rest)

Prints any basic lisp object.

Method: show ((lst list) &rest rest)
Method: show ((fn function) &rest rest)
Method: show ((table hash-table) &key sort-by)

Displays a hash table line-by-line, sorted either by key or val.


6.2.6 Structures

Structure: action
Package

wouldwork.

Source

ww-structures.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: name
Type

symbol

Readers

action.name.

Writers

(setf action.name).

Slot: pre-defun-name
Type

symbol

Readers

action.pre-defun-name.

Writers

(setf action.pre-defun-name).

Slot: eff-defun-name
Type

symbol

Readers

action.eff-defun-name.

Writers

(setf action.eff-defun-name).

Slot: duration
Type

real

Initform

0.0

Readers

action.duration.

Writers

(setf action.duration).

Slot: precondition-params
Type

list

Readers

action.precondition-params.

Writers

(setf action.precondition-params).

Slot: precondition-variables
Type

list

Readers

action.precondition-variables.

Writers

(setf action.precondition-variables).

Slot: precondition-types
Type

list

Readers

action.precondition-types.

Writers

(setf action.precondition-types).

Slot: precondition-type-inst
Type

list

Readers

action.precondition-type-inst.

Writers

(setf action.precondition-type-inst).

Slot: dynamic
Type

list

Readers

action.dynamic.

Writers

(setf action.dynamic).

Slot: precondition-args
Type

(or list symbol)

Readers

action.precondition-args.

Writers

(setf action.precondition-args).

Slot: precondition-form
Type

list

Readers

action.precondition-form.

Writers

(setf action.precondition-form).

Slot: init
Type

(member nil t)

Readers

action.init.

Writers

(setf action.init).

Slot: precondition-lambda
Type

list

Readers

action.precondition-lambda.

Writers

(setf action.precondition-lambda).

Slot: iprecondition-lambda
Type

list

Readers

action.iprecondition-lambda.

Writers

(setf action.iprecondition-lambda).

Slot: effect-variables
Type

list

Readers

action.effect-variables.

Writers

(setf action.effect-variables).

Slot: effect-adds
Type

list

Readers

action.effect-adds.

Writers

(setf action.effect-adds).

Slot: effect-lambda
Type

list

Readers

action.effect-lambda.

Writers

(setf action.effect-lambda).

Slot: ieffect-lambda
Type

list

Readers

action.ieffect-lambda.

Writers

(setf action.ieffect-lambda).

Structure: choice

Represents a choice point in backtracking search

Package

wouldwork.

Source

ww-backtracker.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: act
Readers

choice.act.

Writers

(setf choice.act).

Slot: forward-update
Readers

choice.forward-update.

Writers

(setf choice.forward-update).

Slot: inverse-update
Readers

choice.inverse-update.

Writers

(setf choice.inverse-update).

Slot: level
Readers

choice.level.

Writers

(setf choice.level).

Structure: hstack

An hstack (hash stack) is a functional stack containing an adjustable one-dimensional array of elements, plus a hash table for quickly determining if an element is in the stack. Keyfn is applied to elements to access the hash table. New elements are pushed at the fill-pointer, and popped at the fill-pointer minus 1.

Package

hstack.

Source

ww-hstack.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: vector
Package

common-lisp.

Type

(array * (*))

Initform

(make-array 0 :adjustable t :fill-pointer t)

Readers

hstack.vector.

Writers

(setf hstack.vector).

Slot: table
Initform

(make-hash-table)

Readers

hstack.table.

Writers

(setf hstack.table).

Slot: keyfn
Type

function

Initform

(function identity)

Readers

hstack.keyfn.

Writers

(setf hstack.keyfn).

Structure: node
Package

wouldwork.

Source

ww-structures.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: state
Type

wouldwork::problem-state

Initform

(wouldwork::make-problem-state)

Readers

node.state.

Writers

(setf node.state).

Slot: depth
Type

fixnum

Initform

0

Readers

node.depth.

Writers

(setf node.depth).

Slot: parent
Type

(or null wouldwork::node list)

Readers

node.parent.

Writers

(setf node.parent).

Structure: parallel-timing

Timing breakdown for parallel search phases.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: task-generation-ms
Type

fixnum

Initform

0

Readers

pt-task-generation-ms.

Writers

(setf pt-task-generation-ms).

Slot: worker-search-ms
Type

fixnum

Initform

0

Readers

pt-worker-search-ms.

Writers

(setf pt-worker-search-ms).

Slot: finalization-ms
Type

fixnum

Initform

0

Readers

pt-finalization-ms.

Writers

(setf pt-finalization-ms).

Slot: total-ms
Type

fixnum

Initform

0

Readers

pt-total-ms.

Writers

(setf pt-total-ms).

Structure: problem-state

A planning state including the current propositional database.

Package

wouldwork.

Source

ww-structures.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: name
Type

symbol

Readers

problem-state.name.

Writers

(setf problem-state.name).

Slot: instantiations
Type

list

Readers

problem-state.instantiations.

Writers

(setf problem-state.instantiations).

Slot: happenings
Type

list

Readers

problem-state.happenings.

Writers

(setf problem-state.happenings).

Slot: time
Package

common-lisp.

Type

real

Initform

0.0

Readers

problem-state.time.

Writers

(setf problem-state.time).

Slot: value
Type

real

Initform

0.0

Readers

problem-state.value.

Writers

(setf problem-state.value).

Slot: heuristic
Type

real

Initform

0.0

Readers

problem-state.heuristic.

Writers

(setf problem-state.heuristic).

Slot: idb
Type

hash-table

Initform

(make-hash-table)

Readers

problem-state.idb.

Writers

(setf problem-state.idb).

Slot: hidb
Type

hash-table

Initform

(make-hash-table)

Readers

problem-state.hidb.

Writers

(setf problem-state.hidb).

Slot: idb-hash
Type

(or null fixnum)

Readers

problem-state.idb-hash.

Writers

(setf problem-state.idb-hash).

Structure: solution

The record of a solution.

Package

wouldwork.

Source

ww-structures.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: depth
Type

fixnum

Initform

0

Readers

solution.depth.

Writers

(setf solution.depth).

Slot: time
Package

common-lisp.

Type

real

Initform

0.0

Readers

solution.time.

Writers

(setf solution.time).

Slot: value
Type

real

Initform

0.0

Readers

solution.value.

Writers

(setf solution.value).

Slot: path
Type

list

Readers

solution.path.

Writers

(setf solution.path).

Slot: goal
Type

wouldwork::problem-state

Initform

(wouldwork::make-problem-state)

Readers

solution.goal.

Writers

(setf solution.goal).

Structure: task-queue

Thread-safe task queue with blocking pop capability.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: buffer
Type

simple-vector

Initform

(make-array wouldwork::+initial-task-queue-size+ :initial-element nil)

Readers

tq-buffer.

Writers

(setf tq-buffer).

Slot: head
Type

fixnum

Initform

0

Readers

tq-head.

Writers

(setf tq-head).

Slot: tail
Type

fixnum

Initform

0

Readers

tq-tail.

Writers

(setf tq-tail).

Slot: count
Package

common-lisp.

Type

fixnum

Initform

0

Readers

tq-count.

Writers

(setf tq-count).

Slot: mutex
Initform

(sb-thread:make-mutex :name "task-queue-mutex")

Readers

tq-mutex.

Writers

(setf tq-mutex).

Slot: waitqueue
Initform

(sb-thread:make-waitqueue :name "task-queue-waitqueue")

Readers

tq-waitqueue.

Writers

(setf tq-waitqueue).

Slot: done-p
Type

boolean

Readers

tq-done-p.

Writers

(setf tq-done-p).

Slot: active-workers
Type

fixnum

Initform

0

Readers

tq-active-workers.

Writers

(setf tq-active-workers).

Structure: undo-checkpoint

Saved state for goal-chaining undo.

Package

wouldwork.

Source

ww-goal-chaining.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: start-state
Readers

undo-checkpoint-start-state.

Writers

(setf undo-checkpoint-start-state).

Slot: goal
Readers

undo-checkpoint-goal.

Writers

(setf undo-checkpoint-goal).

Structure: update

Db updates resulting from a successful action instantiation.

Package

wouldwork.

Source

ww-structures.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: changes
Type

(or hash-table list)

Readers

update.changes.

Writers

(setf update.changes).

Slot: value
Type

real

Initform

0.0

Readers

update.value.

Writers

(setf update.value).

Slot: instantiations
Type

list

Readers

update.instantiations.

Writers

(setf update.instantiations).

Slot: followups
Type

list

Readers

update.followups.

Writers

(setf update.followups).

Structure: worker-stats

Per-worker statistics accumulated during search.

Package

wouldwork.

Source

ww-parallel-infrastructure.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: states-processed
Type

fixnum

Initform

0

Readers

ws-states-processed.

Writers

(setf ws-states-processed).

Slot: repeated-states
Type

fixnum

Initform

0

Readers

ws-repeated-states.

Writers

(setf ws-repeated-states).

Slot: program-cycles
Type

fixnum

Initform

0

Readers

ws-program-cycles.

Writers

(setf ws-program-cycles).

Slot: max-depth
Type

fixnum

Initform

0

Readers

ws-max-depth.

Writers

(setf ws-max-depth).

Slot: accumulated-depths
Type

fixnum

Initform

0

Readers

ws-accumulated-depths.

Writers

(setf ws-accumulated-depths).

Slot: num-paths
Type

fixnum

Initform

0

Readers

ws-num-paths.

Writers

(setf ws-num-paths).

Slot: solutions-found
Type

fixnum

Initform

0

Readers

ws-solutions-found.

Writers

(setf ws-solutions-found).

Slot: nodes-donated
Type

fixnum

Initform

0

Readers

ws-nodes-donated.

Writers

(setf ws-nodes-donated).

Slot: donation-events
Type

fixnum

Initform

0

Readers

ws-donation-events.

Writers

(setf ws-donation-events).


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   $   %   (   ?  
A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   R   S   T   U   V   W  
Index Entry  Section

$
$var-or-$var-list-p: Private ordinary functions
$varp: Private ordinary functions

%
%run: Private ordinary functions
%stage: Private ordinary functions
%validate-solution: Private ordinary functions

(
(setf action.duration): Private ordinary functions
(setf action.dynamic): Private ordinary functions
(setf action.eff-defun-name): Private ordinary functions
(setf action.effect-adds): Private ordinary functions
(setf action.effect-lambda): Private ordinary functions
(setf action.effect-variables): Private ordinary functions
(setf action.ieffect-lambda): Private ordinary functions
(setf action.init): Private ordinary functions
(setf action.iprecondition-lambda): Private ordinary functions
(setf action.name): Private ordinary functions
(setf action.pre-defun-name): Private ordinary functions
(setf action.precondition-args): Private ordinary functions
(setf action.precondition-form): Private ordinary functions
(setf action.precondition-lambda): Private ordinary functions
(setf action.precondition-params): Private ordinary functions
(setf action.precondition-type-inst): Private ordinary functions
(setf action.precondition-types): Private ordinary functions
(setf action.precondition-variables): Private ordinary functions
(setf choice.act): Private ordinary functions
(setf choice.forward-update): Private ordinary functions
(setf choice.inverse-update): Private ordinary functions
(setf choice.level): Private ordinary functions
(setf hstack.keyfn): Private ordinary functions
(setf hstack.table): Private ordinary functions
(setf hstack.vector): Private ordinary functions
(setf node.depth): Private ordinary functions
(setf node.parent): Private ordinary functions
(setf node.state): Private ordinary functions
(setf problem-state.happenings): Private ordinary functions
(setf problem-state.heuristic): Private ordinary functions
(setf problem-state.hidb): Private ordinary functions
(setf problem-state.idb): Private ordinary functions
(setf problem-state.idb-hash): Private ordinary functions
(setf problem-state.instantiations): Private ordinary functions
(setf problem-state.name): Private ordinary functions
(setf problem-state.time): Private ordinary functions
(setf problem-state.value): Private ordinary functions
(setf pt-finalization-ms): Private ordinary functions
(setf pt-task-generation-ms): Private ordinary functions
(setf pt-total-ms): Private ordinary functions
(setf pt-worker-search-ms): Private ordinary functions
(setf solution.depth): Private ordinary functions
(setf solution.goal): Private ordinary functions
(setf solution.path): Private ordinary functions
(setf solution.time): Private ordinary functions
(setf solution.value): Private ordinary functions
(setf tq-active-workers): Private ordinary functions
(setf tq-buffer): Private ordinary functions
(setf tq-count): Private ordinary functions
(setf tq-done-p): Private ordinary functions
(setf tq-head): Private ordinary functions
(setf tq-mutex): Private ordinary functions
(setf tq-tail): Private ordinary functions
(setf tq-waitqueue): Private ordinary functions
(setf undo-checkpoint-goal): Private ordinary functions
(setf undo-checkpoint-start-state): Private ordinary functions
(setf update.changes): Private ordinary functions
(setf update.followups): Private ordinary functions
(setf update.instantiations): Private ordinary functions
(setf update.value): Private ordinary functions
(setf ws-accumulated-depths): Private ordinary functions
(setf ws-donation-events): Private ordinary functions
(setf ws-max-depth): Private ordinary functions
(setf ws-nodes-donated): Private ordinary functions
(setf ws-num-paths): Private ordinary functions
(setf ws-program-cycles): Private ordinary functions
(setf ws-repeated-states): Private ordinary functions
(setf ws-solutions-found): Private ordinary functions
(setf ws-states-processed): Private ordinary functions

?
?var-or-?var-list-p: Private ordinary functions
?varp: Private ordinary functions

A
action-p: Private ordinary functions
action.duration: Private ordinary functions
action.dynamic: Private ordinary functions
action.eff-defun-name: Private ordinary functions
action.effect-adds: Private ordinary functions
action.effect-lambda: Private ordinary functions
action.effect-variables: Private ordinary functions
action.ieffect-lambda: Private ordinary functions
action.init: Private ordinary functions
action.iprecondition-lambda: Private ordinary functions
action.name: Private ordinary functions
action.pre-defun-name: Private ordinary functions
action.precondition-args: Private ordinary functions
action.precondition-form: Private ordinary functions
action.precondition-lambda: Private ordinary functions
action.precondition-params: Private ordinary functions
action.precondition-type-inst: Private ordinary functions
action.precondition-types: Private ordinary functions
action.precondition-variables: Private ordinary functions
add-dir: Private ordinary functions
add-file: Private ordinary functions
add-parent-to-node: Private ordinary functions
add-problem-folder: Public ordinary functions
add-prop: Private ordinary functions
add-proposition: Private ordinary functions
agent-starred-p: Private ordinary functions
aggregate-worker-stats: Private ordinary functions
amend-happenings: Private ordinary functions
apply-action-to-state: Private ordinary functions
apply-followups: Private ordinary functions
apply-parallel-preset: Private ordinary functions
apply-rebound: Private ordinary functions
apply-update-to-state: Private ordinary functions
args-match-with-combinations: Private ordinary functions
associate-objects-with-integers: Private ordinary functions
at-max-depth: Private ordinary functions

B
backtrack: Private ordinary functions
backward-path-exists: Private ordinary functions
best-states-last: Private ordinary functions
better-than-closed: Private ordinary functions
bounding-function: Private ordinary functions
build-state-from-update: Private ordinary functions

C
check-action: Private ordinary functions
check-bind-fluent-consistency: Private ordinary functions
check-effect-parameters: Private ordinary functions
check-form-body: Private ordinary functions
check-happening: Private ordinary functions
check-patroller-spec: Private ordinary functions
check-precondition-parameters: Private ordinary functions
check-predicate: Private ordinary functions
check-problem-parameter: Private ordinary functions
check-proposition: Private ordinary functions
check-query/update-call: Private ordinary functions
check-query/update-function: Private ordinary functions
check-relation: Private ordinary functions
check-validation-result: Private ordinary functions
check-variable-names: Private ordinary functions
choice-p: Private ordinary functions
choice.act: Private ordinary functions
choice.forward-update: Private ordinary functions
choice.inverse-update: Private ordinary functions
choice.level: Private ordinary functions
choose-ht-value-test: Private ordinary functions
cl-symbol-p: Private ordinary functions
cleanup-resources: Private ordinary functions
cleanup-test-files: Private ordinary functions
clear-hstack: Private ordinary functions
closed-key: Private ordinary functions
closed-shard: Private ordinary functions
closed-shard-lock: Private ordinary functions
closed-shards-distribution: Private ordinary functions
closed-shards-total-count: Private ordinary functions
closed-shards-total-size: Private ordinary functions
collect-at-indexes: Private ordinary functions
collect-solution-data: Private ordinary functions
command-test-1: Private ordinary functions
command-test-2: Private ordinary functions
command-test-3: Private ordinary functions
command-test-4: Private ordinary functions
compile-all-functions: Private ordinary functions
compute-average-branching-factor: Private ordinary functions
compute-donation-count: Private ordinary functions
compute-donation-totals: Private ordinary functions
compute-idb-hash: Private ordinary functions
compute-state-bound-value: Private ordinary functions
compute-target-tasks: Private ordinary functions
constraint-violated-in-act-hap-net: Private ordinary functions
continue-from-solution: Private ordinary functions
convert-databases-to-integers: Private ordinary functions
convert-prop-list: Private ordinary functions
convert-to-fluent-proposition: Private ordinary functions
convert-to-integer: Private ordinary functions
convert-to-integer-memoized: Private ordinary functions
convert-to-proposition: Private ordinary functions
copy-action: Private ordinary functions
copy-choice: Private ordinary functions
copy-file-content: Private ordinary functions
copy-hstack: Private ordinary functions
copy-ht-set: Private ordinary functions
copy-idb: Private ordinary functions
copy-node: Private ordinary functions
copy-parallel-timing: Private ordinary functions
copy-problem-state: Private ordinary functions
copy-problem-state-without-idb: Private ordinary functions
copy-solution: Private ordinary functions
copy-task-queue: Private ordinary functions
copy-undo-checkpoint: Private ordinary functions
copy-update: Private ordinary functions
copy-worker-stats: Private ordinary functions
count-agent-switches: Private ordinary functions
create-action: Private ordinary functions
create-action-state: Private ordinary functions

D
database: Private ordinary functions
defer-hybrid-goal: Private ordinary functions
define-action: Private macros
define-complementary-relations: Private macros
define-constraint: Private macros
define-dynamic-relations: Private macros
define-global: Private macros
define-goal: Private macros
define-happening: Private macros
define-init: Private macros
define-init-action: Private macros
define-invariant: Private macros
define-patroller: Private macros
define-query: Private macros
define-static-relations: Private macros
define-types: Private macros
define-update: Private macros
del-prop: Private ordinary functions
delete-actions: Private ordinary functions
delete-proposition: Private ordinary functions
deletef-nth-hstack: Private ordinary functions
detect-output: Private ordinary functions
detect-path-cycle: Private ordinary functions
df-bnb1: Private ordinary functions
dfs: Private ordinary functions
diagnose-precondition-failure: Private ordinary functions
different: Private ordinary functions
directory-exists-p: Private ordinary functions
display-all: Private ordinary functions
display-current-parameters: Private ordinary functions
display-globals: Public ordinary functions
display-parallel-parameters: Private ordinary functions
display-parallel-timing: Private ordinary functions
display-validation-state: Private ordinary functions
display-worker-stats: Private ordinary functions
dissect-eff-params: Private ordinary functions
dissect-pre-params: Private ordinary functions
do-init-action-updates: Private ordinary functions
do-integer-conversion: Private ordinary functions

E
either: Private ordinary functions
empty-hstack: Private ordinary functions
ensure-idb-hash: Private ordinary functions
ensure-start-state-synchronized: Private ordinary functions
enumerate-paths-to-node: Private ordinary functions
eql*: Private ordinary functions
equivalent: Private macros
estimate-to-goal: Private ordinary functions
eval-instantiated-spec: Private ordinary functions
evaluate-precondition-clause: Private ordinary functions
exchange-problem-file: Private ordinary functions
expand: Private ordinary functions
expand-into-plist: Private ordinary functions
extract-donation-nodes: Private ordinary functions
extract-effect-args: Private ordinary functions
extract-effect-instantiation: Private ordinary functions
extract-goal-state-from-solution: Private ordinary functions
extract-symbols: Private ordinary functions

F
f-value-better: Private ordinary functions
final-charp: Private ordinary functions
finalize-hybrid-solutions: Private ordinary functions
finalize-parallel-search-results: Private ordinary functions
finalize-path-depth: Private ordinary functions
find-combination-var-groups: Private ordinary functions
fix-if-ignore: Private ordinary functions
fixed-keys-ht-equal: Private ordinary functions
fixed-keys-ht-hash: Private ordinary functions
fixedp: Private ordinary functions
fluent-spec-p: Private ordinary functions
forced-read-mode-p: Private ordinary functions
forget: Private ordinary functions
format-action-with-effect-order: Private ordinary functions
format-timing: Private ordinary functions
freq: Private ordinary functions
Function, $var-or-$var-list-p: Private ordinary functions
Function, $varp: Private ordinary functions
Function, %run: Private ordinary functions
Function, %stage: Private ordinary functions
Function, %validate-solution: Private ordinary functions
Function, (setf action.duration): Private ordinary functions
Function, (setf action.dynamic): Private ordinary functions
Function, (setf action.eff-defun-name): Private ordinary functions
Function, (setf action.effect-adds): Private ordinary functions
Function, (setf action.effect-lambda): Private ordinary functions
Function, (setf action.effect-variables): Private ordinary functions
Function, (setf action.ieffect-lambda): Private ordinary functions
Function, (setf action.init): Private ordinary functions
Function, (setf action.iprecondition-lambda): Private ordinary functions
Function, (setf action.name): Private ordinary functions
Function, (setf action.pre-defun-name): Private ordinary functions
Function, (setf action.precondition-args): Private ordinary functions
Function, (setf action.precondition-form): Private ordinary functions
Function, (setf action.precondition-lambda): Private ordinary functions
Function, (setf action.precondition-params): Private ordinary functions
Function, (setf action.precondition-type-inst): Private ordinary functions
Function, (setf action.precondition-types): Private ordinary functions
Function, (setf action.precondition-variables): Private ordinary functions
Function, (setf choice.act): Private ordinary functions
Function, (setf choice.forward-update): Private ordinary functions
Function, (setf choice.inverse-update): Private ordinary functions
Function, (setf choice.level): Private ordinary functions
Function, (setf hstack.keyfn): Private ordinary functions
Function, (setf hstack.table): Private ordinary functions
Function, (setf hstack.vector): Private ordinary functions
Function, (setf node.depth): Private ordinary functions
Function, (setf node.parent): Private ordinary functions
Function, (setf node.state): Private ordinary functions
Function, (setf problem-state.happenings): Private ordinary functions
Function, (setf problem-state.heuristic): Private ordinary functions
Function, (setf problem-state.hidb): Private ordinary functions
Function, (setf problem-state.idb): Private ordinary functions
Function, (setf problem-state.idb-hash): Private ordinary functions
Function, (setf problem-state.instantiations): Private ordinary functions
Function, (setf problem-state.name): Private ordinary functions
Function, (setf problem-state.time): Private ordinary functions
Function, (setf problem-state.value): Private ordinary functions
Function, (setf pt-finalization-ms): Private ordinary functions
Function, (setf pt-task-generation-ms): Private ordinary functions
Function, (setf pt-total-ms): Private ordinary functions
Function, (setf pt-worker-search-ms): Private ordinary functions
Function, (setf solution.depth): Private ordinary functions
Function, (setf solution.goal): Private ordinary functions
Function, (setf solution.path): Private ordinary functions
Function, (setf solution.time): Private ordinary functions
Function, (setf solution.value): Private ordinary functions
Function, (setf tq-active-workers): Private ordinary functions
Function, (setf tq-buffer): Private ordinary functions
Function, (setf tq-count): Private ordinary functions
Function, (setf tq-done-p): Private ordinary functions
Function, (setf tq-head): Private ordinary functions
Function, (setf tq-mutex): Private ordinary functions
Function, (setf tq-tail): Private ordinary functions
Function, (setf tq-waitqueue): Private ordinary functions
Function, (setf undo-checkpoint-goal): Private ordinary functions
Function, (setf undo-checkpoint-start-state): Private ordinary functions
Function, (setf update.changes): Private ordinary functions
Function, (setf update.followups): Private ordinary functions
Function, (setf update.instantiations): Private ordinary functions
Function, (setf update.value): Private ordinary functions
Function, (setf ws-accumulated-depths): Private ordinary functions
Function, (setf ws-donation-events): Private ordinary functions
Function, (setf ws-max-depth): Private ordinary functions
Function, (setf ws-nodes-donated): Private ordinary functions
Function, (setf ws-num-paths): Private ordinary functions
Function, (setf ws-program-cycles): Private ordinary functions
Function, (setf ws-repeated-states): Private ordinary functions
Function, (setf ws-solutions-found): Private ordinary functions
Function, (setf ws-states-processed): Private ordinary functions
Function, ?var-or-?var-list-p: Private ordinary functions
Function, ?varp: Private ordinary functions
Function, action-p: Private ordinary functions
Function, action.duration: Private ordinary functions
Function, action.dynamic: Private ordinary functions
Function, action.eff-defun-name: Private ordinary functions
Function, action.effect-adds: Private ordinary functions
Function, action.effect-lambda: Private ordinary functions
Function, action.effect-variables: Private ordinary functions
Function, action.ieffect-lambda: Private ordinary functions
Function, action.init: Private ordinary functions
Function, action.iprecondition-lambda: Private ordinary functions
Function, action.name: Private ordinary functions
Function, action.pre-defun-name: Private ordinary functions
Function, action.precondition-args: Private ordinary functions
Function, action.precondition-form: Private ordinary functions
Function, action.precondition-lambda: Private ordinary functions
Function, action.precondition-params: Private ordinary functions
Function, action.precondition-type-inst: Private ordinary functions
Function, action.precondition-types: Private ordinary functions
Function, action.precondition-variables: Private ordinary functions
Function, add-dir: Private ordinary functions
Function, add-file: Private ordinary functions
Function, add-parent-to-node: Private ordinary functions
Function, add-problem-folder: Public ordinary functions
Function, add-prop: Private ordinary functions
Function, add-proposition: Private ordinary functions
Function, agent-starred-p: Private ordinary functions
Function, aggregate-worker-stats: Private ordinary functions
Function, amend-happenings: Private ordinary functions
Function, apply-action-to-state: Private ordinary functions
Function, apply-followups: Private ordinary functions
Function, apply-parallel-preset: Private ordinary functions
Function, apply-rebound: Private ordinary functions
Function, apply-update-to-state: Private ordinary functions
Function, args-match-with-combinations: Private ordinary functions
Function, associate-objects-with-integers: Private ordinary functions
Function, at-max-depth: Private ordinary functions
Function, backtrack: Private ordinary functions
Function, backward-path-exists: Private ordinary functions
Function, best-states-last: Private ordinary functions
Function, better-than-closed: Private ordinary functions
Function, bounding-function: Private ordinary functions
Function, build-state-from-update: Private ordinary functions
Function, check-action: Private ordinary functions
Function, check-bind-fluent-consistency: Private ordinary functions
Function, check-effect-parameters: Private ordinary functions
Function, check-form-body: Private ordinary functions
Function, check-happening: Private ordinary functions
Function, check-patroller-spec: Private ordinary functions
Function, check-precondition-parameters: Private ordinary functions
Function, check-predicate: Private ordinary functions
Function, check-problem-parameter: Private ordinary functions
Function, check-proposition: Private ordinary functions
Function, check-query/update-call: Private ordinary functions
Function, check-query/update-function: Private ordinary functions
Function, check-relation: Private ordinary functions
Function, check-validation-result: Private ordinary functions
Function, check-variable-names: Private ordinary functions
Function, choice-p: Private ordinary functions
Function, choice.act: Private ordinary functions
Function, choice.forward-update: Private ordinary functions
Function, choice.inverse-update: Private ordinary functions
Function, choice.level: Private ordinary functions
Function, choose-ht-value-test: Private ordinary functions
Function, cl-symbol-p: Private ordinary functions
Function, cleanup-resources: Private ordinary functions
Function, cleanup-test-files: Private ordinary functions
Function, clear-hstack: Private ordinary functions
Function, closed-key: Private ordinary functions
Function, closed-shard: Private ordinary functions
Function, closed-shard-lock: Private ordinary functions
Function, closed-shards-distribution: Private ordinary functions
Function, closed-shards-total-count: Private ordinary functions
Function, closed-shards-total-size: Private ordinary functions
Function, collect-at-indexes: Private ordinary functions
Function, collect-solution-data: Private ordinary functions
Function, command-test-1: Private ordinary functions
Function, command-test-2: Private ordinary functions
Function, command-test-3: Private ordinary functions
Function, command-test-4: Private ordinary functions
Function, compile-all-functions: Private ordinary functions
Function, compute-average-branching-factor: Private ordinary functions
Function, compute-donation-count: Private ordinary functions
Function, compute-donation-totals: Private ordinary functions
Function, compute-idb-hash: Private ordinary functions
Function, compute-state-bound-value: Private ordinary functions
Function, compute-target-tasks: Private ordinary functions
Function, constraint-violated-in-act-hap-net: Private ordinary functions
Function, continue-from-solution: Private ordinary functions
Function, convert-databases-to-integers: Private ordinary functions
Function, convert-prop-list: Private ordinary functions
Function, convert-to-fluent-proposition: Private ordinary functions
Function, convert-to-integer: Private ordinary functions
Function, convert-to-integer-memoized: Private ordinary functions
Function, convert-to-proposition: Private ordinary functions
Function, copy-action: Private ordinary functions
Function, copy-choice: Private ordinary functions
Function, copy-file-content: Private ordinary functions
Function, copy-hstack: Private ordinary functions
Function, copy-ht-set: Private ordinary functions
Function, copy-idb: Private ordinary functions
Function, copy-node: Private ordinary functions
Function, copy-parallel-timing: Private ordinary functions
Function, copy-problem-state: Private ordinary functions
Function, copy-problem-state-without-idb: Private ordinary functions
Function, copy-solution: Private ordinary functions
Function, copy-task-queue: Private ordinary functions
Function, copy-undo-checkpoint: Private ordinary functions
Function, copy-update: Private ordinary functions
Function, copy-worker-stats: Private ordinary functions
Function, count-agent-switches: Private ordinary functions
Function, create-action: Private ordinary functions
Function, create-action-state: Private ordinary functions
Function, database: Private ordinary functions
Function, defer-hybrid-goal: Private ordinary functions
Function, del-prop: Private ordinary functions
Function, delete-actions: Private ordinary functions
Function, delete-proposition: Private ordinary functions
Function, deletef-nth-hstack: Private ordinary functions
Function, detect-output: Private ordinary functions
Function, detect-path-cycle: Private ordinary functions
Function, df-bnb1: Private ordinary functions
Function, dfs: Private ordinary functions
Function, diagnose-precondition-failure: Private ordinary functions
Function, different: Private ordinary functions
Function, directory-exists-p: Private ordinary functions
Function, display-all: Private ordinary functions
Function, display-current-parameters: Private ordinary functions
Function, display-globals: Public ordinary functions
Function, display-parallel-parameters: Private ordinary functions
Function, display-parallel-timing: Private ordinary functions
Function, display-validation-state: Private ordinary functions
Function, display-worker-stats: Private ordinary functions
Function, dissect-eff-params: Private ordinary functions
Function, dissect-pre-params: Private ordinary functions
Function, do-init-action-updates: Private ordinary functions
Function, do-integer-conversion: Private ordinary functions
Function, either: Private ordinary functions
Function, empty-hstack: Private ordinary functions
Function, ensure-idb-hash: Private ordinary functions
Function, ensure-start-state-synchronized: Private ordinary functions
Function, enumerate-paths-to-node: Private ordinary functions
Function, eql*: Private ordinary functions
Function, estimate-to-goal: Private ordinary functions
Function, eval-instantiated-spec: Private ordinary functions
Function, evaluate-precondition-clause: Private ordinary functions
Function, exchange-problem-file: Private ordinary functions
Function, expand: Private ordinary functions
Function, expand-into-plist: Private ordinary functions
Function, extract-donation-nodes: Private ordinary functions
Function, extract-effect-args: Private ordinary functions
Function, extract-effect-instantiation: Private ordinary functions
Function, extract-goal-state-from-solution: Private ordinary functions
Function, extract-symbols: Private ordinary functions
Function, f-value-better: Private ordinary functions
Function, final-charp: Private ordinary functions
Function, finalize-hybrid-solutions: Private ordinary functions
Function, finalize-parallel-search-results: Private ordinary functions
Function, finalize-path-depth: Private ordinary functions
Function, find-combination-var-groups: Private ordinary functions
Function, fix-if-ignore: Private ordinary functions
Function, fixed-keys-ht-equal: Private ordinary functions
Function, fixed-keys-ht-hash: Private ordinary functions
Function, fixedp: Private ordinary functions
Function, fluent-spec-p: Private ordinary functions
Function, forced-read-mode-p: Private ordinary functions
Function, forget: Private ordinary functions
Function, format-action-with-effect-order: Private ordinary functions
Function, format-timing: Private ordinary functions
Function, freq: Private ordinary functions
Function, generate-children: Private ordinary functions
Function, generate-choices-for-single-combination-bt: Private ordinary functions
Function, generate-fluent-bindings: Private ordinary functions
Function, generate-fluent-instances: Private ordinary functions
Function, generate-new-node: Private ordinary functions
Function, generate-new-propositions: Private ordinary functions
Function, generate-patroller-cycle-events: Private ordinary functions
Function, generate-patroller-events: Private ordinary functions
Function, generate-patroller-reverse-events: Private ordinary functions
Function, generate-proposition-permutations: Private ordinary functions
Function, generate-root-tasks: Private ordinary functions
Function, get-all-nonspecial-vars: Private ordinary functions
Function, get-all-vars: Private ordinary functions
Function, get-bound-?vars: Private ordinary functions
Function, get-closed-node: Private ordinary functions
Function, get-closed-values: Private ordinary functions
Function, get-complement-prop: Private ordinary functions
Function, get-database-reference: Private ordinary functions
Function, get-fluentless-prop: Private ordinary functions
Function, get-following-happening: Private ordinary functions
Function, get-new-states: Private ordinary functions
Function, get-next-event-time: Private ordinary functions
Function, get-next-node-for-expansion: Private ordinary functions
Function, get-path-action-agent: Private ordinary functions
Function, get-pre-lambda-arg-lists: Private ordinary functions
Function, get-precondition-args: Private ordinary functions
Function, get-prop-fluent-indices: Private ordinary functions
Function, get-prop-fluents: Private ordinary functions
Function, get-special-vars: Private ordinary functions
Function, get-src-folder-path: Public ordinary functions
Function, get-state-codes: Private ordinary functions
Function, get-wait-happenings: Private ordinary functions
Function, get-worker-stats: Private ordinary functions
Function, goal: Private ordinary functions
Function, handle-trace-interception: Private ordinary functions
Function, hash-table-present-p: Private ordinary functions
Function, hash-table-same-keys-p: Private ordinary functions
Function, header-p: Private ordinary functions
Function, help: Public ordinary functions
Function, hstack-p: Private ordinary functions
Function, hstack.keyfn: Private ordinary functions
Function, hstack.table: Private ordinary functions
Function, hstack.vector: Private ordinary functions
Function, idb-in-open: Private ordinary functions
Function, in-src: Private ordinary functions
Function, init: Private ordinary functions
Function, init-start-state: Private ordinary functions
Function, initial-best-bound: Private ordinary functions
Function, initialize-act-state: Private ordinary functions
Function, initialize-closed-infrastructure: Private ordinary functions
Function, initialize-closed-locks: Private ordinary functions
Function, initialize-closed-shard-locks: Private ordinary functions
Function, initialize-closed-shards: Private ordinary functions
Function, initialize-hybrid-mode: Private ordinary functions
Function, initialize-worker-stats: Private ordinary functions
Function, install-action: Private ordinary functions
Function, install-complementary-relations: Private ordinary functions
Function, install-constraint: Private ordinary functions
Function, install-dynamic-relations: Private ordinary functions
Function, install-goal: Private ordinary functions
Function, install-happening: Private ordinary functions
Function, install-init: Private ordinary functions
Function, install-init-action: Private ordinary functions
Function, install-patroller: Private ordinary functions
Function, install-query: Private ordinary functions
Function, install-static-relations: Private ordinary functions
Function, install-types: Private ordinary functions
Function, install-update: Private ordinary functions
Function, instantiate-type-spec: Private ordinary functions
Function, interleave+: Private ordinary functions
Function, intern-symbol: Private ordinary functions
Function, interrupt-condition: Private ordinary functions
Function, intersperse: Private ordinary functions
Function, is-complete-solution: Private ordinary functions
Function, kill-condition: Private ordinary functions
Function, length-hstack: Private ordinary functions
Function, lisp-type-p: Private ordinary functions
Function, list-all-problems: Private ordinary functions
Function, list-database: Private ordinary functions
Function, list-problem-files-plist: Private ordinary functions
Function, list-problem-names: Private ordinary functions
Function, load-problem: Private ordinary functions
Function, lookup: Private ordinary functions
Function, lstrip: Private ordinary functions
Function, make-action: Private ordinary functions
Function, make-choice: Private ordinary functions
Function, make-hstack: Private ordinary functions
Function, make-ht-set: Private ordinary functions
Function, make-new-task-queue: Private ordinary functions
Function, make-node: Private ordinary functions
Function, make-parallel-timing: Private ordinary functions
Function, make-problem-state: Private ordinary functions
Function, make-solution: Private ordinary functions
Function, make-task-queue: Private ordinary functions
Function, make-undo-checkpoint: Private ordinary functions
Function, make-update: Private ordinary functions
Function, make-worker-stats: Private ordinary functions
Function, map-into-tree-atoms: Private ordinary functions
Function, maybe-donate-work: Private ordinary functions
Function, maybe-report-parallel-progress: Private ordinary functions
Function, merge-idb-hidb: Private ordinary functions
Function, merge-sort: Private ordinary functions
Function, merge-sort-list: Private ordinary functions
Function, narrate: Private ordinary functions
Function, narrate-bt: Private ordinary functions
Function, next-action-valid-p: Private ordinary functions
Function, ninsert-list: Private ordinary functions
Function, node-can-improve-bound-p: Private ordinary functions
Function, node-p: Private ordinary functions
Function, node-parent-entries: Private ordinary functions
Function, node-parents-list: Private ordinary functions
Function, node.depth: Private ordinary functions
Function, node.parent: Private ordinary functions
Function, node.state: Private ordinary functions
Function, node.state.idb: Private ordinary functions
Function, node.state.idb-hash: Private ordinary functions
Function, normalize-fluent-spec: Private ordinary functions
Function, nth-hstack: Private ordinary functions
Function, on-current-path: Private ordinary functions
Function, parallel-help: Private ordinary functions
Function, parallel-timing-p: Private ordinary functions
Function, parallel-worker: Private ordinary functions
Function, params: Private ordinary functions
Function, parse-patroller-slots: Private ordinary functions
Function, parse-problem-name: Private ordinary functions
Function, peek-hstack: Private ordinary functions
Function, pop-hstack: Private ordinary functions
Function, print-hash-table-delta: Private ordinary functions
Function, print-ht: Private ordinary functions
Function, print-list-delta: Private ordinary functions
Function, print-optimal-solutions: Private ordinary functions
Function, print-problem-state: Private ordinary functions
Function, print-search-progress: Private ordinary functions
Function, print-search-tree: Private ordinary functions
Function, print-state-delta: Private ordinary functions
Function, print-state-propositions: Private ordinary functions
Function, print-test-header: Private ordinary functions
Function, printout-search-progress: Private ordinary functions
Function, printout-solution: Private ordinary functions
Function, probe: Private ordinary functions
Function, problem-state-p: Private ordinary functions
Function, problem-state.happenings: Private ordinary functions
Function, problem-state.heuristic: Private ordinary functions
Function, problem-state.hidb: Private ordinary functions
Function, problem-state.idb: Private ordinary functions
Function, problem-state.idb-hash: Private ordinary functions
Function, problem-state.instantiations: Private ordinary functions
Function, problem-state.name: Private ordinary functions
Function, problem-state.time: Private ordinary functions
Function, problem-state.value: Private ordinary functions
Function, probs: Private ordinary functions
Function, process-followups: Private ordinary functions
Function, process-min-max-value: Private ordinary functions
Function, process-partitioned-parallel: Private ordinary functions
Function, process-solution: Private ordinary functions
Function, process-successors: Private ordinary functions
Function, profile: Private ordinary functions
Function, prompt-user-action: Private ordinary functions
Function, proposition-less-p: Private ordinary functions
Function, pt-finalization-ms: Private ordinary functions
Function, pt-task-generation-ms: Private ordinary functions
Function, pt-total-ms: Private ordinary functions
Function, pt-worker-search-ms: Private ordinary functions
Function, push-hstack: Private ordinary functions
Function, read-from-file: Private ordinary functions
Function, read-globals: Public ordinary functions
Function, read-hash-table-from-file: Private ordinary functions
Function, read-init-vals: Private ordinary functions
Function, rebound-condition: Private ordinary functions
Function, reconstruct-solution-path: Private ordinary functions
Function, record-move: Private ordinary functions
Function, record-solution-path: Private ordinary functions
Function, refresh: Private ordinary functions
Function, register-choice-bt: Private ordinary functions
Function, register-dynamic-object: Private ordinary functions
Function, register-parallel-solution: Private ordinary functions
Function, register-solution: Private ordinary functions
Function, register-solution-bt: Private ordinary functions
Function, remove-at-indexes: Private ordinary functions
Function, remove-problem-folder: Public ordinary functions
Function, report-binding-mismatches: Private ordinary functions
Function, report-parallel-progress: Private ordinary functions
Function, report-state-mismatch: Private ordinary functions
Function, report-validation-failure: Private ordinary functions
Function, reset-global-hash-tables: Private ordinary functions
Function, reset-parallel-control-flags: Private ordinary functions
Function, reset-parameters: Private ordinary functions
Function, reset-user-syms: Private ordinary functions
Function, retrieve: Private ordinary functions
Function, revise: Private ordinary functions
Function, rstrip: Private ordinary functions
Function, run-test-problems: Public ordinary functions
Function, save: Private ordinary functions
Function, save-globals: Public ordinary functions
Function, save-to-file: Private ordinary functions
Function, save-undo-checkpoint: Private ordinary functions
Function, search-backtracking: Private ordinary functions
Function, search-serial: Private ordinary functions
Function, select-matching-effect: Private ordinary functions
Function, set-difference-ht-set: Private ordinary functions
Function, shard-index-for-hash: Private ordinary functions
Function, shard-index-for-state: Private ordinary functions
Function, simple-break: Private ordinary functions
Function, size-hstack: Private ordinary functions
Function, solution-better-p: Private ordinary functions
Function, solution-equivalent-p: Private ordinary functions
Function, solution-p: Private ordinary functions
Function, solution.depth: Private ordinary functions
Function, solution.goal: Private ordinary functions
Function, solution.path: Private ordinary functions
Function, solution.time: Private ordinary functions
Function, solution.value: Private ordinary functions
Function, solve: Private ordinary functions
Function, sort-either-types: Private ordinary functions
Function, sort-symbols: Private ordinary functions
Function, state-bound-better-p: Private ordinary functions
Function, string-prefix-p: Private ordinary functions
Function, string-suffix-p: Private ordinary functions
Function, strip-name: Private ordinary functions
Function, subspec-p: Private ordinary functions
Function, subst-bindings-recursive: Private ordinary functions
Function, subst-int-code: Private ordinary functions
Function, subst-items-at-ascending-indexes: Private ordinary functions
Function, substitute-bindings: Private ordinary functions
Function, summarize-search-results: Private ordinary functions
Function, symmetric-type-indexes: Private ordinary functions
Function, task-queue-p: Private ordinary functions
Function, test: Private ordinary functions
Function, test-bt: Private ordinary functions
Function, test-commands: Private ordinary functions
Function, total-parallel-frontier: Private ordinary functions
Function, tq-active-workers: Private ordinary functions
Function, tq-buffer: Private ordinary functions
Function, tq-count: Private ordinary functions
Function, tq-done-p: Private ordinary functions
Function, tq-empty-p: Private ordinary functions
Function, tq-grow-buffer: Private ordinary functions
Function, tq-head: Private ordinary functions
Function, tq-mutex: Private ordinary functions
Function, tq-needs-work-p: Private ordinary functions
Function, tq-pop-blocking: Private ordinary functions
Function, tq-push: Private ordinary functions
Function, tq-push-many: Private ordinary functions
Function, tq-register-worker: Private ordinary functions
Function, tq-signal-done: Private ordinary functions
Function, tq-tail: Private ordinary functions
Function, tq-try-pop: Private ordinary functions
Function, tq-waiting-workers-p: Private ordinary functions
Function, tq-waitqueue: Private ordinary functions
Function, trace-action%: Private ordinary functions
Function, trace-action-instantiation: Private ordinary functions
Function, translate: Private ordinary functions
Function, translate-assert: Private ordinary functions
Function, translate-assert-bt: Private ordinary functions
Function, translate-bind: Private ordinary functions
Function, translate-case: Private ordinary functions
Function, translate-cond: Private ordinary functions
Function, translate-conditional: Private ordinary functions
Function, translate-connective: Private ordinary functions
Function, translate-do: Private ordinary functions
Function, translate-doall: Private ordinary functions
Function, translate-equivalent: Private ordinary functions
Function, translate-existential: Private ordinary functions
Function, translate-fluent-atom: Private ordinary functions
Function, translate-followup: Private ordinary functions
Function, translate-function-call: Private ordinary functions
Function, translate-let: Private ordinary functions
Function, translate-list: Private ordinary functions
Function, translate-mvsetq: Private ordinary functions
Function, translate-negative-relation: Private ordinary functions
Function, translate-positive-relation: Private ordinary functions
Function, translate-print: Private ordinary functions
Function, translate-proposition: Private ordinary functions
Function, translate-setq: Private ordinary functions
Function, translate-simple-atom: Private ordinary functions
Function, translate-universal: Private ordinary functions
Function, translate-ww-loop: Private ordinary functions
Function, transpose: Private ordinary functions
Function, trim-1st-char: Private ordinary functions
Function, troubleshoot: Private ordinary functions
Function, type-or-query-or-either-p: Private ordinary functions
Function, undo-checkpoint-goal: Private ordinary functions
Function, undo-checkpoint-p: Private ordinary functions
Function, undo-checkpoint-start-state: Private ordinary functions
Function, undo-choice-bt: Private ordinary functions
Function, union-ht-set: Private ordinary functions
Function, update: Private ordinary functions
Function, update-bt: Private ordinary functions
Function, update-function-p: Private ordinary functions
Function, update-is-inconsistent: Private ordinary functions
Function, update-max-depth-explored: Private ordinary functions
Function, update-open-if-succ-better: Private ordinary functions
Function, update-p: Private ordinary functions
Function, update-search-tree: Private ordinary functions
Function, update-search-tree-bt: Private ordinary functions
Function, update-start-state-from-goal: Private ordinary functions
Function, update-statistics: Private ordinary functions
Function, update.changes: Private ordinary functions
Function, update.followups: Private ordinary functions
Function, update.instantiations: Private ordinary functions
Function, update.value: Private ordinary functions
Function, user-or-lisp-type-p: Private ordinary functions
Function, validate-bind-form: Private ordinary functions
Function, validate-continuation-preconditions: Private ordinary functions
Function, validate-global-invariants: Private ordinary functions
Function, validate-parallel-settings: Private ordinary functions
Function, validate-start-state-consistency: Private ordinary functions
Function, varp: Private ordinary functions
Function, vectorize: Private ordinary functions
Function, walk-tree: Private ordinary functions
Function, worker-local-dfs: Private ordinary functions
Function, worker-process-successors-phase1: Private ordinary functions
Function, worker-stats-p: Private ordinary functions
Function, write-hash-table-to-file: Private ordinary functions
Function, write-operation-p: Private ordinary functions
Function, ws-accumulated-depths: Private ordinary functions
Function, ws-donation-events: Private ordinary functions
Function, ws-finalize-path: Private ordinary functions
Function, ws-inc-cycles: Private ordinary functions
Function, ws-inc-repeated: Private ordinary functions
Function, ws-inc-solutions: Private ordinary functions
Function, ws-inc-states: Private ordinary functions
Function, ws-max-depth: Private ordinary functions
Function, ws-nodes-donated: Private ordinary functions
Function, ws-num-paths: Private ordinary functions
Function, ws-program-cycles: Private ordinary functions
Function, ws-repeated-states: Private ordinary functions
Function, ws-solutions-found: Private ordinary functions
Function, ws-states-processed: Private ordinary functions
Function, ws-update-max-depth: Private ordinary functions
Function, ww-reset: Private ordinary functions
Function, ww-solve: Private ordinary functions
Function, ww-undo: Private ordinary functions

G
generate-children: Private ordinary functions
generate-choices-for-single-combination-bt: Private ordinary functions
generate-fluent-bindings: Private ordinary functions
generate-fluent-instances: Private ordinary functions
generate-new-node: Private ordinary functions
generate-new-propositions: Private ordinary functions
generate-patroller-cycle-events: Private ordinary functions
generate-patroller-events: Private ordinary functions
generate-patroller-reverse-events: Private ordinary functions
generate-proposition-permutations: Private ordinary functions
generate-root-tasks: Private ordinary functions
Generic Function, show: Private generic functions
get-all-nonspecial-vars: Private ordinary functions
get-all-vars: Private ordinary functions
get-bound-?vars: Private ordinary functions
get-closed-node: Private ordinary functions
get-closed-values: Private ordinary functions
get-complement-prop: Private ordinary functions
get-database-reference: Private ordinary functions
get-fluentless-prop: Private ordinary functions
get-following-happening: Private ordinary functions
get-new-states: Private ordinary functions
get-next-event-time: Private ordinary functions
get-next-node-for-expansion: Private ordinary functions
get-path-action-agent: Private ordinary functions
get-pre-lambda-arg-lists: Private ordinary functions
get-precondition-args: Private ordinary functions
get-prop-fluent-indices: Private ordinary functions
get-prop-fluents: Private ordinary functions
get-special-vars: Private ordinary functions
get-src-folder-path: Public ordinary functions
get-state-codes: Private ordinary functions
get-wait-happenings: Private ordinary functions
get-worker-stats: Private ordinary functions
goal: Private ordinary functions

H
handle-trace-interception: Private ordinary functions
hash-table-present-p: Private ordinary functions
hash-table-same-keys-p: Private ordinary functions
header-p: Private ordinary functions
help: Public ordinary functions
hstack-p: Private ordinary functions
hstack.keyfn: Private ordinary functions
hstack.table: Private ordinary functions
hstack.vector: Private ordinary functions

I
idb-in-open: Private ordinary functions
if-it: Private macros
in-src: Private ordinary functions
increment-global: Private macros
init: Private ordinary functions
init-start-state: Private ordinary functions
initial-best-bound: Private ordinary functions
initialize-act-state: Private ordinary functions
initialize-closed-infrastructure: Private ordinary functions
initialize-closed-locks: Private ordinary functions
initialize-closed-shard-locks: Private ordinary functions
initialize-closed-shards: Private ordinary functions
initialize-hybrid-mode: Private ordinary functions
initialize-worker-stats: Private ordinary functions
install-action: Private ordinary functions
install-complementary-relations: Private ordinary functions
install-constraint: Private ordinary functions
install-dynamic-relations: Private ordinary functions
install-goal: Private ordinary functions
install-happening: Private ordinary functions
install-init: Private ordinary functions
install-init-action: Private ordinary functions
install-patroller: Private ordinary functions
install-query: Private ordinary functions
install-static-relations: Private ordinary functions
install-types: Private ordinary functions
install-update: Private ordinary functions
instantiate-type-spec: Private ordinary functions
interleave+: Private ordinary functions
intern-symbol: Private ordinary functions
interrupt-condition: Private ordinary functions
intersperse: Private ordinary functions
is-complete-solution: Private ordinary functions

K
kill-condition: Private ordinary functions

L
length-hstack: Private ordinary functions
lisp-type-p: Private ordinary functions
list-all-problems: Private ordinary functions
list-database: Private ordinary functions
list-problem-files-plist: Private ordinary functions
list-problem-names: Private ordinary functions
load-problem: Private ordinary functions
lookup: Private ordinary functions
lprt: Private macros
lstrip: Private ordinary functions

M
Macro, define-action: Private macros
Macro, define-complementary-relations: Private macros
Macro, define-constraint: Private macros
Macro, define-dynamic-relations: Private macros
Macro, define-global: Private macros
Macro, define-goal: Private macros
Macro, define-happening: Private macros
Macro, define-init: Private macros
Macro, define-init-action: Private macros
Macro, define-invariant: Private macros
Macro, define-patroller: Private macros
Macro, define-query: Private macros
Macro, define-static-relations: Private macros
Macro, define-types: Private macros
Macro, define-update: Private macros
Macro, equivalent: Private macros
Macro, if-it: Private macros
Macro, increment-global: Private macros
Macro, lprt: Private macros
Macro, mvb: Private macros
Macro, mvs: Private macros
Macro, mvsetq: Private macros
Macro, pop-global: Private macros
Macro, prt: Private macros
Macro, prt-if: Private macros
Macro, push-global: Private macros
Macro, run: Public macros
Macro, sortf: Private macros
Macro, stage: Private macros
Macro, trace-action: Private macros
Macro, validate-solution: Private macros
Macro, when-debug>=: Private macros
Macro, with-closed-shard-lock: Private macros
Macro, with-closed-shard-lock-by-index: Private macros
Macro, with-search-structures-lock: Private macros
Macro, with-silenced-compilation: Private macros
Macro, ww-continue: Private macros
Macro, ww-set: Private macros
make-action: Private ordinary functions
make-choice: Private ordinary functions
make-hstack: Private ordinary functions
make-ht-set: Private ordinary functions
make-new-task-queue: Private ordinary functions
make-node: Private ordinary functions
make-parallel-timing: Private ordinary functions
make-problem-state: Private ordinary functions
make-solution: Private ordinary functions
make-task-queue: Private ordinary functions
make-undo-checkpoint: Private ordinary functions
make-update: Private ordinary functions
make-worker-stats: Private ordinary functions
map-into-tree-atoms: Private ordinary functions
maybe-donate-work: Private ordinary functions
maybe-report-parallel-progress: Private ordinary functions
merge-idb-hidb: Private ordinary functions
merge-sort: Private ordinary functions
merge-sort-list: Private ordinary functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, show: Private generic functions
Method, show: Private generic functions
Method, show: Private generic functions
Method, show: Private generic functions
mvb: Private macros
mvs: Private macros
mvsetq: Private macros

N
narrate: Private ordinary functions
narrate-bt: Private ordinary functions
next-action-valid-p: Private ordinary functions
ninsert-list: Private ordinary functions
node-can-improve-bound-p: Private ordinary functions
node-p: Private ordinary functions
node-parent-entries: Private ordinary functions
node-parents-list: Private ordinary functions
node.depth: Private ordinary functions
node.parent: Private ordinary functions
node.state: Private ordinary functions
node.state.idb: Private ordinary functions
node.state.idb-hash: Private ordinary functions
normalize-fluent-spec: Private ordinary functions
nth-hstack: Private ordinary functions

O
on-current-path: Private ordinary functions

P
parallel-help: Private ordinary functions
parallel-timing-p: Private ordinary functions
parallel-worker: Private ordinary functions
params: Private ordinary functions
parse-patroller-slots: Private ordinary functions
parse-problem-name: Private ordinary functions
peek-hstack: Private ordinary functions
pop-global: Private macros
pop-hstack: Private ordinary functions
print-hash-table-delta: Private ordinary functions
print-ht: Private ordinary functions
print-list-delta: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-optimal-solutions: Private ordinary functions
print-problem-state: Private ordinary functions
print-search-progress: Private ordinary functions
print-search-tree: Private ordinary functions
print-state-delta: Private ordinary functions
print-state-propositions: Private ordinary functions
print-test-header: Private ordinary functions
printout-search-progress: Private ordinary functions
printout-solution: Private ordinary functions
probe: Private ordinary functions
problem-state-p: Private ordinary functions
problem-state.happenings: Private ordinary functions
problem-state.heuristic: Private ordinary functions
problem-state.hidb: Private ordinary functions
problem-state.idb: Private ordinary functions
problem-state.idb-hash: Private ordinary functions
problem-state.instantiations: Private ordinary functions
problem-state.name: Private ordinary functions
problem-state.time: Private ordinary functions
problem-state.value: Private ordinary functions
probs: Private ordinary functions
process-followups: Private ordinary functions
process-min-max-value: Private ordinary functions
process-partitioned-parallel: Private ordinary functions
process-solution: Private ordinary functions
process-successors: Private ordinary functions
profile: Private ordinary functions
prompt-user-action: Private ordinary functions
proposition-less-p: Private ordinary functions
prt: Private macros
prt-if: Private macros
pt-finalization-ms: Private ordinary functions
pt-task-generation-ms: Private ordinary functions
pt-total-ms: Private ordinary functions
pt-worker-search-ms: Private ordinary functions
push-global: Private macros
push-hstack: Private ordinary functions

R
read-from-file: Private ordinary functions
read-globals: Public ordinary functions
read-hash-table-from-file: Private ordinary functions
read-init-vals: Private ordinary functions
rebound-condition: Private ordinary functions
reconstruct-solution-path: Private ordinary functions
record-move: Private ordinary functions
record-solution-path: Private ordinary functions
refresh: Private ordinary functions
register-choice-bt: Private ordinary functions
register-dynamic-object: Private ordinary functions
register-parallel-solution: Private ordinary functions
register-solution: Private ordinary functions
register-solution-bt: Private ordinary functions
remove-at-indexes: Private ordinary functions
remove-problem-folder: Public ordinary functions
report-binding-mismatches: Private ordinary functions
report-parallel-progress: Private ordinary functions
report-state-mismatch: Private ordinary functions
report-validation-failure: Private ordinary functions
reset-global-hash-tables: Private ordinary functions
reset-parallel-control-flags: Private ordinary functions
reset-parameters: Private ordinary functions
reset-user-syms: Private ordinary functions
retrieve: Private ordinary functions
revise: Private ordinary functions
rstrip: Private ordinary functions
run: Public macros
run-test-problems: Public ordinary functions

S
save: Private ordinary functions
save-globals: Public ordinary functions
save-to-file: Private ordinary functions
save-undo-checkpoint: Private ordinary functions
search-backtracking: Private ordinary functions
search-serial: Private ordinary functions
select-matching-effect: Private ordinary functions
set-difference-ht-set: Private ordinary functions
shard-index-for-hash: Private ordinary functions
shard-index-for-state: Private ordinary functions
show: Private generic functions
show: Private generic functions
show: Private generic functions
show: Private generic functions
show: Private generic functions
simple-break: Private ordinary functions
size-hstack: Private ordinary functions
solution-better-p: Private ordinary functions
solution-equivalent-p: Private ordinary functions
solution-p: Private ordinary functions
solution.depth: Private ordinary functions
solution.goal: Private ordinary functions
solution.path: Private ordinary functions
solution.time: Private ordinary functions
solution.value: Private ordinary functions
solve: Private ordinary functions
sort-either-types: Private ordinary functions
sort-symbols: Private ordinary functions
sortf: Private macros
stage: Private macros
state-bound-better-p: Private ordinary functions
string-prefix-p: Private ordinary functions
string-suffix-p: Private ordinary functions
strip-name: Private ordinary functions
subspec-p: Private ordinary functions
subst-bindings-recursive: Private ordinary functions
subst-int-code: Private ordinary functions
subst-items-at-ascending-indexes: Private ordinary functions
substitute-bindings: Private ordinary functions
summarize-search-results: Private ordinary functions
symmetric-type-indexes: Private ordinary functions

T
task-queue-p: Private ordinary functions
test: Private ordinary functions
test-bt: Private ordinary functions
test-commands: Private ordinary functions
total-parallel-frontier: Private ordinary functions
tq-active-workers: Private ordinary functions
tq-buffer: Private ordinary functions
tq-count: Private ordinary functions
tq-done-p: Private ordinary functions
tq-empty-p: Private ordinary functions
tq-grow-buffer: Private ordinary functions
tq-head: Private ordinary functions
tq-mutex: Private ordinary functions
tq-needs-work-p: Private ordinary functions
tq-pop-blocking: Private ordinary functions
tq-push: Private ordinary functions
tq-push-many: Private ordinary functions
tq-register-worker: Private ordinary functions
tq-signal-done: Private ordinary functions
tq-tail: Private ordinary functions
tq-try-pop: Private ordinary functions
tq-waiting-workers-p: Private ordinary functions
tq-waitqueue: Private ordinary functions
trace-action: Private macros
trace-action%: Private ordinary functions
trace-action-instantiation: Private ordinary functions
translate: Private ordinary functions
translate-assert: Private ordinary functions
translate-assert-bt: Private ordinary functions
translate-bind: Private ordinary functions
translate-case: Private ordinary functions
translate-cond: Private ordinary functions
translate-conditional: Private ordinary functions
translate-connective: Private ordinary functions
translate-do: Private ordinary functions
translate-doall: Private ordinary functions
translate-equivalent: Private ordinary functions
translate-existential: Private ordinary functions
translate-fluent-atom: Private ordinary functions
translate-followup: Private ordinary functions
translate-function-call: Private ordinary functions
translate-let: Private ordinary functions
translate-list: Private ordinary functions
translate-mvsetq: Private ordinary functions
translate-negative-relation: Private ordinary functions
translate-positive-relation: Private ordinary functions
translate-print: Private ordinary functions
translate-proposition: Private ordinary functions
translate-setq: Private ordinary functions
translate-simple-atom: Private ordinary functions
translate-universal: Private ordinary functions
translate-ww-loop: Private ordinary functions
transpose: Private ordinary functions
trim-1st-char: Private ordinary functions
troubleshoot: Private ordinary functions
type-or-query-or-either-p: Private ordinary functions

U
undo-checkpoint-goal: Private ordinary functions
undo-checkpoint-p: Private ordinary functions
undo-checkpoint-start-state: Private ordinary functions
undo-choice-bt: Private ordinary functions
union-ht-set: Private ordinary functions
update: Private ordinary functions
update-bt: Private ordinary functions
update-function-p: Private ordinary functions
update-is-inconsistent: Private ordinary functions
update-max-depth-explored: Private ordinary functions
update-open-if-succ-better: Private ordinary functions
update-p: Private ordinary functions
update-search-tree: Private ordinary functions
update-search-tree-bt: Private ordinary functions
update-start-state-from-goal: Private ordinary functions
update-statistics: Private ordinary functions
update.changes: Private ordinary functions
update.followups: Private ordinary functions
update.instantiations: Private ordinary functions
update.value: Private ordinary functions
user-or-lisp-type-p: Private ordinary functions

V
validate-bind-form: Private ordinary functions
validate-continuation-preconditions: Private ordinary functions
validate-global-invariants: Private ordinary functions
validate-parallel-settings: Private ordinary functions
validate-solution: Private macros
validate-start-state-consistency: Private ordinary functions
varp: Private ordinary functions
vectorize: Private ordinary functions

W
walk-tree: Private ordinary functions
when-debug>=: Private macros
with-closed-shard-lock: Private macros
with-closed-shard-lock-by-index: Private macros
with-search-structures-lock: Private macros
with-silenced-compilation: Private macros
worker-local-dfs: Private ordinary functions
worker-process-successors-phase1: Private ordinary functions
worker-stats-p: Private ordinary functions
write-hash-table-to-file: Private ordinary functions
write-operation-p: Private ordinary functions
ws-accumulated-depths: Private ordinary functions
ws-donation-events: Private ordinary functions
ws-finalize-path: Private ordinary functions
ws-inc-cycles: Private ordinary functions
ws-inc-repeated: Private ordinary functions
ws-inc-solutions: Private ordinary functions
ws-inc-states: Private ordinary functions
ws-max-depth: Private ordinary functions
ws-nodes-donated: Private ordinary functions
ws-num-paths: Private ordinary functions
ws-program-cycles: Private ordinary functions
ws-repeated-states: Private ordinary functions
ws-solutions-found: Private ordinary functions
ws-states-processed: Private ordinary functions
ws-update-max-depth: Private ordinary functions
ww-continue: Private macros
ww-reset: Private ordinary functions
ww-set: Private macros
ww-solve: Private ordinary functions
ww-undo: Private ordinary functions


A.3 Variables

Jump to:   *   +  
A   B   C   D   E   F   G   H   I   K   L   M   N   P   R   S   T   V   W  
Index Entry  Section

*
*-*: Private special variables
*accumulated-depths*: Private special variables
*actions*: Private special variables
*algorithm*: Private special variables
*average-branching-factor*: Private special variables
*backtrack-state*: Private special variables
*best-bound*: Private special variables
*best-bound-lock*: Private special variables
*best-solution-lock*: Private special variables
*best-states*: Private special variables
*bound-refresh-interval*: Private special variables
*branch*: Private special variables
*choice-stack*: Private special variables
*closed*: Private special variables
*closed-shard-locks*: Private special variables
*closed-shard-mask*: Private special variables
*closed-shards*: Private special variables
*complements*: Private special variables
*connectives*: Private special variables
*constant-integers*: Private special variables
*cost*: Private special variables
*counter*: Private special variables
*db*: Private special variables
*debug*: Private special variables
*default-parameters*: Private special variables
*depth-cutoff*: Private special variables
*donation-check-interval*: Private special variables
*donation-fraction*: Private special variables
*donation-threshold*: Private special variables
*eff-param-vars*: Private special variables
*enable-work-donation*: Private special variables
*first-solution-found*: Private special variables
*fixed-ht-values-fn*: Private special variables
*fluent-relation-indices*: Private special variables
*freq-ht*: Private special variables
*global-invariants*: Private special variables
*globals-file*: Public special variables
*goal*: Private special variables
*hap-db*: Private special variables
*hap-idb*: Private special variables
*happening-names*: Private special variables
*hdb*: Private special variables
*hidb*: Private special variables
*hybrid-goals*: Private special variables
*hybrid-mode*: Private special variables
*idb*: Private special variables
*inconsistent-states-dropped*: Private special variables
*init-actions*: Private special variables
*integer-constants*: Private special variables
*integer-lock*: Private special variables
*last-object-index*: Private special variables
*last-progress-time*: Private special variables
*lock*: Private special variables
*max-depth-explored*: Private special variables
*min-action-duration*: Private special variables
*min-tasks*: Private special variables
*num-closed-shards*: Private special variables
*num-idle-threads*: Private special variables
*num-init-successors*: Private special variables
*num-paths*: Private special variables
*objective-value-p*: Private special variables
*open*: Private special variables
*parallel-search-active*: Private special variables
*parallel-timing*: Private special variables
*parameter-headers*: Private special variables
*print-updates*: Private special variables
*prior-time*: Private special variables
*prior-total-states-processed*: Private special variables
*probe*: Private special variables
*problem-folder-paths*: Public special variables
*problem-name*: Private special variables
*problem-type*: Private special variables
*program-cycles*: Private special variables
*progress-interval-seconds*: Private special variables
*progress-lock*: Private special variables
*progress-reporting-interval*: Private special variables
*prop-key-cache*: Private special variables
*proposition-read-mode*: Private special variables
*query-names*: Private special variables
*randomize-search*: Private special variables
*refreshing*: Private special variables
*relations*: Private special variables
*rem-init-successors*: Private special variables
*repeated-states*: Private special variables
*search-lock*: Private special variables
*search-tree*: Private special variables
*shutdown-requested*: Private special variables
*solution-count*: Private special variables
*solution-type*: Private special variables
*solutions*: Private special variables
*split-depth-max*: Private special variables
*start-state*: Private special variables
*start-time*: Private special variables
*state-codes*: Private special variables
*static-db*: Private special variables
*static-idb*: Private special variables
*static-relations*: Private special variables
*symmetrics*: Private special variables
*tasks-per-thread*: Private special variables
*test-bt-problem-files*: Private special variables
*test-problem-files*: Private special variables
*threads*: Private special variables
*total-states-processed*: Private special variables
*trace-action-name*: Private special variables
*trace-count*: Private special variables
*traced-instantiations*: Private special variables
*tree-or-graph*: Private special variables
*troubleshoot-current-node*: Private special variables
*types*: Private special variables
*undo-checkpoint*: Private special variables
*unique-solutions*: Private special variables
*update-names*: Private special variables
*upper*: Private special variables
*upper-bound*: Private special variables
*within-quantifier*: Private special variables
*worker-stats-vector*: Private special variables
*ww-loading*: Private special variables

+
+initial-task-queue-size+: Private constants

A
accumulated-depths: Private structures
act: Private structures
active-workers: Private structures

B
buffer: Private structures

C
changes: Private structures
Constant, +initial-task-queue-size+: Private constants
count: Private structures

D
depth: Private structures
depth: Private structures
donation-events: Private structures
done-p: Private structures
duration: Private structures
dynamic: Private structures

E
eff-defun-name: Private structures
effect-adds: Private structures
effect-lambda: Private structures
effect-variables: Private structures

F
finalization-ms: Private structures
followups: Private structures
forward-update: Private structures

G
goal: Private structures
goal: Private structures

H
happenings: Private structures
head: Private structures
heuristic: Private structures
hidb: Private structures

I
idb: Private structures
idb-hash: Private structures
ieffect-lambda: Private structures
init: Private structures
instantiations: Private structures
instantiations: Private structures
inverse-update: Private structures
iprecondition-lambda: Private structures

K
keyfn: Private structures

L
level: Private structures

M
max-depth: Private structures
mutex: Private structures

N
name: Private structures
name: Private structures
nodes-donated: Private structures
num-paths: Private structures

P
parent: Private structures
path: Private structures
pre-defun-name: Private structures
precondition-args: Private structures
precondition-form: Private structures
precondition-lambda: Private structures
precondition-params: Private structures
precondition-type-inst: Private structures
precondition-types: Private structures
precondition-variables: Private structures
program-cycles: Private structures

R
repeated-states: Private structures

S
Slot, accumulated-depths: Private structures
Slot, act: Private structures
Slot, active-workers: Private structures
Slot, buffer: Private structures
Slot, changes: Private structures
Slot, count: Private structures
Slot, depth: Private structures
Slot, depth: Private structures
Slot, donation-events: Private structures
Slot, done-p: Private structures
Slot, duration: Private structures
Slot, dynamic: Private structures
Slot, eff-defun-name: Private structures
Slot, effect-adds: Private structures
Slot, effect-lambda: Private structures
Slot, effect-variables: Private structures
Slot, finalization-ms: Private structures
Slot, followups: Private structures
Slot, forward-update: Private structures
Slot, goal: Private structures
Slot, goal: Private structures
Slot, happenings: Private structures
Slot, head: Private structures
Slot, heuristic: Private structures
Slot, hidb: Private structures
Slot, idb: Private structures
Slot, idb-hash: Private structures
Slot, ieffect-lambda: Private structures
Slot, init: Private structures
Slot, instantiations: Private structures
Slot, instantiations: Private structures
Slot, inverse-update: Private structures
Slot, iprecondition-lambda: Private structures
Slot, keyfn: Private structures
Slot, level: Private structures
Slot, max-depth: Private structures
Slot, mutex: Private structures
Slot, name: Private structures
Slot, name: Private structures
Slot, nodes-donated: Private structures
Slot, num-paths: Private structures
Slot, parent: Private structures
Slot, path: Private structures
Slot, pre-defun-name: Private structures
Slot, precondition-args: Private structures
Slot, precondition-form: Private structures
Slot, precondition-lambda: Private structures
Slot, precondition-params: Private structures
Slot, precondition-type-inst: Private structures
Slot, precondition-types: Private structures
Slot, precondition-variables: Private structures
Slot, program-cycles: Private structures
Slot, repeated-states: Private structures
Slot, solutions-found: Private structures
Slot, start-state: Private structures
Slot, state: Private structures
Slot, states-processed: Private structures
Slot, table: Private structures
Slot, tail: Private structures
Slot, task-generation-ms: Private structures
Slot, time: Private structures
Slot, time: Private structures
Slot, total-ms: Private structures
Slot, value: Private structures
Slot, value: Private structures
Slot, value: Private structures
Slot, vector: Private structures
Slot, waitqueue: Private structures
Slot, worker-search-ms: Private structures
solutions-found: Private structures
Special Variable, *-*: Private special variables
Special Variable, *accumulated-depths*: Private special variables
Special Variable, *actions*: Private special variables
Special Variable, *algorithm*: Private special variables
Special Variable, *average-branching-factor*: Private special variables
Special Variable, *backtrack-state*: Private special variables
Special Variable, *best-bound*: Private special variables
Special Variable, *best-bound-lock*: Private special variables
Special Variable, *best-solution-lock*: Private special variables
Special Variable, *best-states*: Private special variables
Special Variable, *bound-refresh-interval*: Private special variables
Special Variable, *branch*: Private special variables
Special Variable, *choice-stack*: Private special variables
Special Variable, *closed*: Private special variables
Special Variable, *closed-shard-locks*: Private special variables
Special Variable, *closed-shard-mask*: Private special variables
Special Variable, *closed-shards*: Private special variables
Special Variable, *complements*: Private special variables
Special Variable, *connectives*: Private special variables
Special Variable, *constant-integers*: Private special variables
Special Variable, *cost*: Private special variables
Special Variable, *counter*: Private special variables
Special Variable, *db*: Private special variables
Special Variable, *debug*: Private special variables
Special Variable, *default-parameters*: Private special variables
Special Variable, *depth-cutoff*: Private special variables
Special Variable, *donation-check-interval*: Private special variables
Special Variable, *donation-fraction*: Private special variables
Special Variable, *donation-threshold*: Private special variables
Special Variable, *eff-param-vars*: Private special variables
Special Variable, *enable-work-donation*: Private special variables
Special Variable, *first-solution-found*: Private special variables
Special Variable, *fixed-ht-values-fn*: Private special variables
Special Variable, *fluent-relation-indices*: Private special variables
Special Variable, *freq-ht*: Private special variables
Special Variable, *global-invariants*: Private special variables
Special Variable, *globals-file*: Public special variables
Special Variable, *goal*: Private special variables
Special Variable, *hap-db*: Private special variables
Special Variable, *hap-idb*: Private special variables
Special Variable, *happening-names*: Private special variables
Special Variable, *hdb*: Private special variables
Special Variable, *hidb*: Private special variables
Special Variable, *hybrid-goals*: Private special variables
Special Variable, *hybrid-mode*: Private special variables
Special Variable, *idb*: Private special variables
Special Variable, *inconsistent-states-dropped*: Private special variables
Special Variable, *init-actions*: Private special variables
Special Variable, *integer-constants*: Private special variables
Special Variable, *integer-lock*: Private special variables
Special Variable, *last-object-index*: Private special variables
Special Variable, *last-progress-time*: Private special variables
Special Variable, *lock*: Private special variables
Special Variable, *max-depth-explored*: Private special variables
Special Variable, *min-action-duration*: Private special variables
Special Variable, *min-tasks*: Private special variables
Special Variable, *num-closed-shards*: Private special variables
Special Variable, *num-idle-threads*: Private special variables
Special Variable, *num-init-successors*: Private special variables
Special Variable, *num-paths*: Private special variables
Special Variable, *objective-value-p*: Private special variables
Special Variable, *open*: Private special variables
Special Variable, *parallel-search-active*: Private special variables
Special Variable, *parallel-timing*: Private special variables
Special Variable, *parameter-headers*: Private special variables
Special Variable, *print-updates*: Private special variables
Special Variable, *prior-time*: Private special variables
Special Variable, *prior-total-states-processed*: Private special variables
Special Variable, *probe*: Private special variables
Special Variable, *problem-folder-paths*: Public special variables
Special Variable, *problem-name*: Private special variables
Special Variable, *problem-type*: Private special variables
Special Variable, *program-cycles*: Private special variables
Special Variable, *progress-interval-seconds*: Private special variables
Special Variable, *progress-lock*: Private special variables
Special Variable, *progress-reporting-interval*: Private special variables
Special Variable, *prop-key-cache*: Private special variables
Special Variable, *proposition-read-mode*: Private special variables
Special Variable, *query-names*: Private special variables
Special Variable, *randomize-search*: Private special variables
Special Variable, *refreshing*: Private special variables
Special Variable, *relations*: Private special variables
Special Variable, *rem-init-successors*: Private special variables
Special Variable, *repeated-states*: Private special variables
Special Variable, *search-lock*: Private special variables
Special Variable, *search-tree*: Private special variables
Special Variable, *shutdown-requested*: Private special variables
Special Variable, *solution-count*: Private special variables
Special Variable, *solution-type*: Private special variables
Special Variable, *solutions*: Private special variables
Special Variable, *split-depth-max*: Private special variables
Special Variable, *start-state*: Private special variables
Special Variable, *start-time*: Private special variables
Special Variable, *state-codes*: Private special variables
Special Variable, *static-db*: Private special variables
Special Variable, *static-idb*: Private special variables
Special Variable, *static-relations*: Private special variables
Special Variable, *symmetrics*: Private special variables
Special Variable, *tasks-per-thread*: Private special variables
Special Variable, *test-bt-problem-files*: Private special variables
Special Variable, *test-problem-files*: Private special variables
Special Variable, *threads*: Private special variables
Special Variable, *total-states-processed*: Private special variables
Special Variable, *trace-action-name*: Private special variables
Special Variable, *trace-count*: Private special variables
Special Variable, *traced-instantiations*: Private special variables
Special Variable, *tree-or-graph*: Private special variables
Special Variable, *troubleshoot-current-node*: Private special variables
Special Variable, *types*: Private special variables
Special Variable, *undo-checkpoint*: Private special variables
Special Variable, *unique-solutions*: Private special variables
Special Variable, *update-names*: Private special variables
Special Variable, *upper*: Private special variables
Special Variable, *upper-bound*: Private special variables
Special Variable, *within-quantifier*: Private special variables
Special Variable, *worker-stats-vector*: Private special variables
Special Variable, *ww-loading*: Private special variables
start-state: Private structures
state: Private structures
states-processed: Private structures

T
table: Private structures
tail: Private structures
task-generation-ms: Private structures
time: Private structures
time: Private structures
total-ms: Private structures

V
value: Private structures
value: Private structures
value: Private structures
vector: Private structures

W
waitqueue: Private structures
worker-search-ms: Private structures


A.4 Data types

Jump to:   A   C   F   H   M   N   P   S   T   U   W  
Index Entry  Section

A
action: Private structures

C
choice: Private structures

F
File, problem.lisp: The wouldwork/src/problem․lisp file
File, wouldwork.asd: The wouldwork/wouldwork․asd file
File, ww-action-trace.lisp: The wouldwork/src/ww-action-trace․lisp file
File, ww-backtracker.lisp: The wouldwork/src/ww-backtracker․lisp file
File, ww-command-tests.lisp: The wouldwork/src/ww-command-tests․lisp file
File, ww-converter.lisp: The wouldwork/src/ww-converter․lisp file
File, ww-frequencies.lisp: The wouldwork/src/ww-frequencies․lisp file
File, ww-goal-chaining.lisp: The wouldwork/src/ww-goal-chaining․lisp file
File, ww-happenings.lisp: The wouldwork/src/ww-happenings․lisp file
File, ww-hstack.lisp: The wouldwork/src/ww-hstack․lisp file
File, ww-initialize.lisp: The wouldwork/src/ww-initialize․lisp file
File, ww-installer.lisp: The wouldwork/src/ww-installer․lisp file
File, ww-interface.lisp: The wouldwork/src/ww-interface․lisp file
File, ww-packages.lisp: The wouldwork/src/ww-packages․lisp file
File, ww-parallel-infrastructure.lisp: The wouldwork/src/ww-parallel-infrastructure․lisp file
File, ww-parallel.lisp: The wouldwork/src/ww-parallel․lisp file
File, ww-patroller-installer.lisp: The wouldwork/src/ww-patroller-installer․lisp file
File, ww-planner.lisp: The wouldwork/src/ww-planner․lisp file
File, ww-preliminaries.lisp: The wouldwork/src/ww-preliminaries․lisp file
File, ww-problem-tests.lisp: The wouldwork/src/ww-problem-tests․lisp file
File, ww-searcher.lisp: The wouldwork/src/ww-searcher․lisp file
File, ww-set.lisp: The wouldwork/src/ww-set․lisp file
File, ww-settings.lisp: The wouldwork/src/ww-settings․lisp file
File, ww-solution-validation.lisp: The wouldwork/src/ww-solution-validation․lisp file
File, ww-structures.lisp: The wouldwork/src/ww-structures․lisp file
File, ww-support.lisp: The wouldwork/src/ww-support․lisp file
File, ww-translator.lisp: The wouldwork/src/ww-translator․lisp file
File, ww-utilities.lisp: The wouldwork/src/ww-utilities․lisp file
File, ww-validator.lisp: The wouldwork/src/ww-validator․lisp file

H
hstack: The hstack package
hstack: Private structures

M
Module, src: The wouldwork/src module

N
node: Private structures

P
Package, hstack: The hstack package
Package, utilities: The utilities package
Package, wouldwork: The wouldwork package
parallel-timing: Private structures
problem-state: Private structures
problem.lisp: The wouldwork/src/problem․lisp file

S
solution: Private structures
src: The wouldwork/src module
Structure, action: Private structures
Structure, choice: Private structures
Structure, hstack: Private structures
Structure, node: Private structures
Structure, parallel-timing: Private structures
Structure, problem-state: Private structures
Structure, solution: Private structures
Structure, task-queue: Private structures
Structure, undo-checkpoint: Private structures
Structure, update: Private structures
Structure, worker-stats: Private structures
System, wouldwork: The wouldwork system

T
task-queue: Private structures

U
undo-checkpoint: Private structures
update: Private structures
utilities: The utilities package

W
worker-stats: Private structures
wouldwork: The wouldwork system
wouldwork: The wouldwork package
wouldwork.asd: The wouldwork/wouldwork․asd file
ww-action-trace.lisp: The wouldwork/src/ww-action-trace․lisp file
ww-backtracker.lisp: The wouldwork/src/ww-backtracker․lisp file
ww-command-tests.lisp: The wouldwork/src/ww-command-tests․lisp file
ww-converter.lisp: The wouldwork/src/ww-converter․lisp file
ww-frequencies.lisp: The wouldwork/src/ww-frequencies․lisp file
ww-goal-chaining.lisp: The wouldwork/src/ww-goal-chaining․lisp file
ww-happenings.lisp: The wouldwork/src/ww-happenings․lisp file
ww-hstack.lisp: The wouldwork/src/ww-hstack․lisp file
ww-initialize.lisp: The wouldwork/src/ww-initialize․lisp file
ww-installer.lisp: The wouldwork/src/ww-installer․lisp file
ww-interface.lisp: The wouldwork/src/ww-interface․lisp file
ww-packages.lisp: The wouldwork/src/ww-packages․lisp file
ww-parallel-infrastructure.lisp: The wouldwork/src/ww-parallel-infrastructure․lisp file
ww-parallel.lisp: The wouldwork/src/ww-parallel․lisp file
ww-patroller-installer.lisp: The wouldwork/src/ww-patroller-installer․lisp file
ww-planner.lisp: The wouldwork/src/ww-planner․lisp file
ww-preliminaries.lisp: The wouldwork/src/ww-preliminaries․lisp file
ww-problem-tests.lisp: The wouldwork/src/ww-problem-tests․lisp file
ww-searcher.lisp: The wouldwork/src/ww-searcher․lisp file
ww-set.lisp: The wouldwork/src/ww-set․lisp file
ww-settings.lisp: The wouldwork/src/ww-settings․lisp file
ww-solution-validation.lisp: The wouldwork/src/ww-solution-validation․lisp file
ww-structures.lisp: The wouldwork/src/ww-structures․lisp file
ww-support.lisp: The wouldwork/src/ww-support․lisp file
ww-translator.lisp: The wouldwork/src/ww-translator․lisp file
ww-utilities.lisp: The wouldwork/src/ww-utilities․lisp file
ww-validator.lisp: The wouldwork/src/ww-validator․lisp file