Herke Van Hoof, Eduardo Terrés-Caballero
We lifted 1 functions out of this paper's own repositories and ran 1 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| EduardoTerres/bta_paper | — | 1 of 1 |
| Function | Status | Where it lives |
|---|---|---|
| OR | Ran | EduardoTerres/bta_paper/boolean_composition/four_rooms/library.py pointer only (licence: NONE) · get_code("d57aed50e9e526ad") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
The Boolean Task Algebra (BTA) provides a principled framework for zero-shot task composition in reinforcement learning by equipping goal-reaching tasks with Boolean operations. We revisit its structural assumptions and formalize a collapse in the space of optimal extended Q-value functions: in deterministic MDPs, every such function is fully determined by the universal and empty tasks. This makes the logarithmic set of base tasks proposed in the original BTA formulation redundant. Building on this observation, we introduce a goal-set-based composition method that performs logical operations on goal sets and reconstructs composed value functions by selecting slices from the universal and empty value functions. This reduces learning costs for standard BTA and reduces composition time for both BTA and Skill Machines, while preserving policy performance. Experiments across tabular, visual, function-approximation, and continuous-control domains show that learning additional base tasks does not yield better performance. Finally, we study the stochastic setting and provide a counterexample showing that this collapse need not hold, that is, optimal composition may require accounting for exponentially many policies in the number of goals. Code is available at https://github.com/EduardoTerres/bta_paper.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2606.04053")
get_code_for_paper("2606.04053")
have("2606.04053")
Connect an agent — have() is free.