A reasoning system emits conclusions and must provide traceable justifications. To achieve this, every operation must be admissible on the currently available facts, intermediate dependencies must persist to the end of the path, and the path must be revised when premises change. We introduce the Event Reasoning System (ERS), where the reasoning state is an explicit event graph. Semantic features nominate candidate objects and generate rule bindings, while declared rule and task conditions decide which bindings may fire, preventing candidates that violate period, unit, or evidence constraints from entering an accepted reasoning path. Low‑level rules offer reusable local transformations; high‑level control rules are recursively composable, organizing subgoals and legal paths under the current goal, information gaps, and budget. Thus a finite rule library is dynamically rebound into paths that are never stored as complete solutions. We formalize admissible state transitions, task‑dependent control, compositional expressivity, dependency‑preserving revision, and the gap between reachable solutions and those found by a budgeted controller. Experiments on structured event graphs show that ERS builds dependency chains up to twelve steps, reduces irrelevant executed domain operations from 32 to 0 as lookahead grows to 16, and produces no unsupported target output across 24 negative cases. With rules frozen, it passes 12/12 focused checks: nine accepted derivations involving unseen input/path combinations, three justified refusals, and six fact‑change cases. On fourteen jointly solved development tasks, the dynamic subgoal configuration uses 51.6% less inference wall‑clock time than single‑level global control under the same frozen settings.
Review