01
Derive facts and retain their supporting steps
For card A, its supplied triangle fact triggers R1, adding blue. That new fact triggers R2, adding rack L. Record two steps: A is blue because A is a triangle and R1 applies; A belongs on rack L because A is blue and R2 applies. For card B, its supplied blue fact triggers R2 directly, adding rack L. R1 does not establish that B is a triangle because blue is the conclusion of R1, not its condition. The proof record distinguishes a two-step chain from a direct one-step conclusion.
02
Leave unsupported attributes unresolved
Card C’s rack-L fact does not establish its colour. R2 says blue cards go to rack L, but it does not say that only blue cards go there. For example, a non-blue card could also occupy rack L without violating either supplied rule. Card D’s circle fact triggers neither rule, so no colour or rack is derived for it. Its unresolved colour does not mean that it is not blue. The exercise contains positive one-way rules and no rule assigning colours to circles or extracting shapes from rack membership.
03
Stop when another pass adds nothing
A reusable proof sheet contains the card identifier, supplied facts, rule identifiers, newly derived facts and the supporting fact for each derivation. Recheck the rules after adding facts, but do not count the same fact twice. In this exercise the final known facts are triangle, blue and rack L for A; blue and rack L for B; rack L for C; and circle for D. Another pass adds nothing. This is closure under the two supplied rules, not complete knowledge of every card. Save unresolved attributes separately so later facts can extend the record without rewriting its earlier steps.