task_symbolic__abacus__displayed_value_readout¶
1) Identity¶
- Domain:
symbolic - Scene id:
abacus - Task id:
task_symbolic__abacus__displayed_value_readout - Objective: select the labeled numeric option matching the integer value represented by a three-column soroban-style abacus.
Program Contract¶
Program: selection.option_match(scene=abacus, scope=three_place_value_columns, rule=soroban_digit_sum, output=option_letter)
Candidate set: the three visible place-value columns labeled 100, 10, and 1.
Operands: the active upper and lower bead states in each column after final layout, plus the six visible numeric option cards.
Operation: compute each soroban digit from the active beads, combine the digits as 100 * hundreds + 10 * tens + ones, then select the unique option card whose displayed number equals that value.
Output binding: answer is the selected option letter.
Annotation witnesses: the selected option-card bounding box.
Query ids: single.
Reasoning Operations¶
Families: formula_evaluation
2) Scene + Task Contract¶
- Supported public
query_idvalues:single answer_gt.type:option_letter- Annotation schema:
bbox annotation_gt.type:bbox- Non-semantic visual axes:
scene_variant=clean_card|wood_frame|worksheet, plus shared symbolic background/noise. - Scene contract:
- exactly three place-value columns labeled
100,10, and1, - each column has one upper bead worth
5and four lower beads worth1, - active beads are moved toward the center beam,
- six visible option cards are labeled
A..F, - exactly one option card displays
hundreds_digit * 100 + tens_digit * 10 + ones_digit, - answer support is the six visible option labels.
3) Prompt Contract¶
- Bundle:
symbolic_abacus_v1 scene_key:abacustask_key:abacus_displayed_value_query- Required task slot:
question_text - The prompt explicitly states the abacus rule: beads moved toward the center bar are active, an active upper bead counts as
5, each active lower bead counts as1, and columns are read as100,10, and1from left to right. - Prompt-facing answer is the single capital-letter option label.
4) Annotation + Trace Contract¶
- Annotation is the scalar bbox around the selected option card.
- Annotation marks the selected option card, not the abacus beads, rods, labels, or frame.
- The trace records the computed integer value, digits by column, option values by label, and selected option label.
- Answer and annotation are bound from the same finalized rendered option set.
5) Tests¶
- Behavior/trace/prompt tests:
tests/test_symbolic_abacus_tasks.py - Prompt/config tests:
tests/test_prompt_system.py,tests/test_symbolic_core_scene_config.py - Source-layout contract tests:
tests/test_public_source_layout_contracts.py