Skip to content

World stage c2b: the generation of pair fluents, under Jon's ruling WM.63 (tiny_full and default_full until c4) - #34

Merged
jonwillits merged 2 commits into
mainfrom
world-c2b
Oct 21, 2026
Merged

jonwillits merged 2 commits into
mainfrom
world-c2b

Conversation

@jonwillits

Copy link
Copy Markdown
Contributor

Builds stage c2b of docs/specs/WORLD_PHASE_C.md: the pair_fluents block of the configuration and the pair shares (code defaults count 0 and locations 0, WM.63); drawn profiles and initial rates from world:pair_fluents in label order, with overrides and event-file entries replacing the draws after they are made; the streams world:pair_preconditions, world:pair_effects, and world:pair_conditions after world:pair_initial; pair literals in preconditions, pair effects, and pair conditions as replacements at their shares, with the compiled literals of F4, the redraws of contradictions, empty effects, contradicting compiled literals, and never-legal event types, and the implications of item 6 for pair conditions; derived fluents over SOME and SOMEOF with the quota derived_rules; the pair_fluents block of world_stats.yaml and its figures; the configurations data/world/tiny_full.yaml and default_full.yaml with their runs, snapshot figures, and off-setting baselines (pair_fluents_off, pair_dynamics_off); the generated fixtures of tiny_full; and the documents. The tiny and default worlds and corpora are unchanged (no snapshot figure moved), and tiny_pairs.yaml keeps stage c2a's rule-set identity.

Proposal: docs/proposals/2026-10-21-world-stage-c2b-decisions.md (WM.63, WM.E270 to WM.E285).

Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com

jonwillits and others added 2 commits October 21, 2026 14:04
…M.63 (tiny_full and default_full until c4)

Builds stage c2b of docs/specs/WORLD_PHASE_C.md: the pair_fluents block of the configuration and the pair shares (code defaults count 0 and locations 0, WM.63); drawn profiles and initial rates from world:pair_fluents in label order, with overrides and event-file entries replacing the draws after they are made; the streams world:pair_preconditions, world:pair_effects, and world:pair_conditions after world:pair_initial; pair literals in preconditions, pair effects, and pair conditions as replacements at their shares, with the compiled literals of F4, the redraws of contradictions, empty effects, contradicting compiled literals, and never-legal event types, and the implications of item 6 for pair conditions; derived fluents over SOME and SOMEOF with the quota derived_rules; the pair_fluents block of world_stats.yaml and its figures; the configurations data/world/tiny_full.yaml and default_full.yaml with their runs, snapshot figures, and off-setting baselines (pair_fluents_off, pair_dynamics_off); the generated fixtures of tiny_full; and the documents. The tiny and default worlds and corpora are unchanged (no snapshot figure moved), and tiny_pairs.yaml keeps stage c2a's rule-set identity.

Proposal: docs/proposals/2026-10-21-world-stage-c2b-decisions.md (WM.63, WM.E270 to WM.E285).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…in preconditions, and the runtime's keys over pairs

Three rulings of October 21, 2026, on the stage's open questions, built on world-c2b (docs/proposals/2026-10-21-world-stage-c2b-decisions.md, "Jon's rulings ... (the follow-up)"; WM.E286 to WM.E289):

1. A delete on a pair fluent that can never hold (initial rate 0 and no add anywhere) can never change anything, so fix_dead_deletes redraws it as an empty effect in the fix-up rounds until stable (seeds 1 to 5 of default_full: 1 own delete redrawn and 7 inherited dropped, all on seed 1). Checked, not changed: the default world has two := 1 effects on BOOLFL.3 (rate 1, never set false) that can never change the state; the tiny world has none (open question 8).
2. Item 6's implications extend to preconditions: a drawn pair literal implied by, contradicted by, or implying another literal of its precondition, or a compiled literal the adds will get, is redrawn (own) or dropped (inherited); compiled literals are never redrawn; the never-legal redraw rejects such candidates (seeds 1 to 5 of default_full: 1 literal redrawn, on seed 1). An explicit event file keeps c2a's exact rules.
3. The runtime keys a row or a column as one entry of the read and write sets (overlaps, covered, interference_sets), the policy computes each event's sets once, and apply_step copies only the pair matrices a fired effect writes (State shares a read-only matrix it is given). Every world, history, and fixture is byte-identical to the runs before the change; define data/world/default_full.yaml fell from 10.9 s to 7.2 s (default 6.9 s).

Found on the way: one event type cannot add both directions of an asymmetric pair fluent (the profile breaks after the step); reverse_add_conflict makes it a contradiction in generation, in check_dynamics, and for an explicit entry.

Figures that moved (python -m semantic_world.figures snapshot; no figure of tiny, default, or tiny_pairs moved, and no baseline of theirs; tiny_pairs gained the five new fix_ups counters at 0):
  default_full.world.conditional.share_of_all: 0.148148 -> 0.16
  default_full.world.effects.by_kind.two_place: 59 -> 53
  default_full.world.effects.by_role.agent: 46 -> 47
  default_full.world.effects.by_role.patient: 35 -> 28
  default_full.world.effects.total: 81 -> 75
  default_full.world.enabling_graph.edges: 237 -> 234
  default_full.world.episodes.mean_changes_per_event: 0.442485 -> 0.418616
  default_full.world.episodes.two_place_share: 0.382152 -> 0.368358
  default_full.world.fix_ups.effects_redrawn: 4 -> 5
  default_full.world.fix_ups.literals_redrawn: 1 -> 2
  default_full.world.numeric.changes_per_event: 0.245292 -> 0.238335
  default_full.world.numeric.drift_changes_per_step: 8.585974 -> 8.596357
  default_full.world.numeric.precondition_literals.by_kind.two_place: 14 -> 15
  default_full.world.numeric.precondition_literals.by_role.patient: 11 -> 12
  default_full.world.numeric.precondition_literals.by_side.above: 10 -> 11
  default_full.world.numeric.precondition_literals.total: 20 -> 21
  default_full.world.pair_fluents.changes_per_event: 0.017752 -> 0.018952
  default_full.world.pair_fluents.effects.by_event_kind.two_place: 11 -> 5
  default_full.world.pair_fluents.effects.by_pair_fluent.PAIRFL.1: 6 -> 0
  default_full.world.pair_fluents.effects.by_pair_fluent.PAIRFL.2: 1 -> 2
  default_full.world.pair_fluents.effects.by_pair_fluent.PAIRFL.3: 1 -> 0
  default_full.world.pair_fluents.effects.by_role.agent: 4 -> 5
  default_full.world.pair_fluents.effects.by_role.patient: 7 -> 0
  default_full.world.pair_fluents.effects.by_value.delete: 10 -> 4
  default_full.world.pair_fluents.effects.total: 11 -> 5
  default_full.world.pair_fluents.fix_ups.effect_replacement_draws: 33 -> 35
  default_full.world.pair_fluents.fix_ups.effect_replacements: 6 -> 7
  default_full.world.pair_fluents.fix_ups.precondition_replacement_draws: 43 -> 44
  default_full.world.pair_fluents.precondition_literals.by_event_kind.two_place: 12 -> 11
  default_full.world.pair_fluents.precondition_literals.by_kind.pair: 2 -> 1
  default_full.world.pair_fluents.precondition_literals.by_polarity.negative: 13 -> 12
  default_full.world.pair_fluents.precondition_literals.by_role.agent: 14 -> 13
  default_full.world.pair_fluents.precondition_literals.total: 15 -> 14
  default_full.world.precondition_literals.by_role.agent: 42 -> 41
  default_full.world.precondition_literals.by_role.patient: 32 -> 33
   ->
  default_full.world.rule_set_code: `4cc7343df491...` -> `cb87e47c91c4...`
  default_full.world.rule_set_id: 4cc7343df491d8e46fb17be07556e271f1917e328dd0e9512e1a7894aca1ef5f -> cb87e47c91c45fac4c4338d415dd3485d84471109abd4f9751ee00a059f8fee3
  default_full.world.rule_set_short: 4cc7343df491 -> cb87e47c91c4
  tiny_full.world.effects.by_role.agent: 7 -> 8
  tiny_full.world.effects.by_role.patient: 3 -> 2
  tiny_full.world.enabling_graph.edges: 7 -> 6
  tiny_full.world.episodes.events: 8278 -> 8277
  tiny_full.world.episodes.mean_changes_per_event: 0.286301 -> 0.322097
  tiny_full.world.episodes.two_place_share: 0.354192 -> 0.353268
  tiny_full.world.fix_ups.effects_redrawn: 1 -> 2
  tiny_full.world.numeric.changes_per_event: 0.329427 -> 0.333937
  tiny_full.world.numeric.drift_changes_per_step: 8.565917 -> 8.565734
  tiny_full.world.pair_fluents.changes_per_event: 0.007973 -> 0.008336
  tiny_full.world.pair_fluents.effects.by_event_kind.two_place: 2 -> 1
  tiny_full.world.pair_fluents.effects.by_pair_fluent.PAIRFL.1: 1 -> 0
  tiny_full.world.pair_fluents.effects.by_role.patient: 1 -> 0
  tiny_full.world.pair_fluents.effects.by_value.delete: 2 -> 1
  tiny_full.world.pair_fluents.effects.total: 2 -> 1
  tiny_full.world.pair_fluents.fix_ups.effect_replacement_draws: 7 -> 8
   ->
  tiny_full.world.rule_set_code: `f61676fdfa0a...` -> `fd0132ef72de...`
  tiny_full.world.rule_set_id: f61676fdfa0a939de27eb80e0f134525c6ae2ba03a05eca787de10be6c08815b -> fd0132ef72debebec38c2ded327561d59a475355dc880abd4a5ad3b879907346
  tiny_full.world.rule_set_short: f61676fdfa0a -> fd0132ef72de

Baselines that moved (the off settings of the two full worlds that keep the pair draws):
  baselines.conditional_effects_off.default_full.rule_set_short: 11bc504b56af -> 237db8f80ed3
  baselines.conditional_effects_off.tiny_full.rule_set_short: 441d25016e79 -> 6785a3c5b14f
  baselines.fluents_off.default_full.rule_set_short: b23eeb27a049 -> dde1d1825412
  baselines.fluents_off.tiny_full.rule_set_short: 593139acc990 -> 133eba656fa6
  baselines.numeric_fluents_off.default_full.rule_set_short: 875b801e5d8c -> c10abcbf0217
  baselines.numeric_fluents_off.tiny_full.rule_set_short: 846cf9f7020c -> 09339441a18d
  baselines.places_off.default_full.rule_set_short: 0fdc14b92a18 -> 46bf62e0008d
  baselines.places_off.tiny_full.rule_set_short: 0f13db365f92 -> b041540a47db

The generated fixtures of tiny_full were regenerated; the hand and tiny fixtures did not change.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@jonwillits
jonwillits merged commit 87a9a25 into main Oct 21, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant