ARC DSL SIMULATOR

FORMALLY VERIFIED VERB ENGINE  ·  apply_object_to_grid  ·  IRF-DSL-GRIDMUT-001 CLOSED
✓ PROVEN
IS_MONOCHROME (recolor_v2)
✓ PROVEN
IS_MONOCHROME (translate_v2)
sorry
TRANSLATE_CONN (path lifting)
11
REMAINING SORRYS (ARCGrid.lean)

GRID EDITOR  8×8 · click to paint

color
1 · Red
INPUT GRID

VERB CONTROLS  translate · recolor

OBJECT SELECTION
obj color
0 pixels
VERB 1 · translate_object
Δrow Δcol
⚠ RIGID BODY FAULT — pixel escaped grid boundary. translate_object → none.
VERB 2 · recolor_object
new color
VERB OUTPUT (OVERSEER DSL)
-- select an object then execute a verb

OUTPUT GRID  result of apply_object_to_grid

BEFORE
AFTER (g' = apply_object_to_grid g pixels new_color)
No transform applied.

LEAN 4 PROOF TRACE  IRF-DSL-GRIDMUT-001 · 2026-04-10

-- apply_object_to_grid: THE MUTATION WITNESS def apply_object_to_grid {H W : ℕ} (g : ARC_Grid H W) (pixels : Finset (ARC_Cell H W)) (color : ARC_Color) : ARC_Grid H W := fun p => if p ∈ pixels then color else g p -- KEY LEMMA: g' returns color at every p ∈ pixels theorem apply_object_color ... (hp : p ∈ pixels) : apply_object_to_grid g pixels color p = color := by simp [apply_object_to_grid, hp] -- ✅ NO SORRY -- RECOLOR V2 · is_monochrome: PROVEN ✅ def recolor_object_v2 ... : ARC_Object (apply_object_to_grid g obj.pixels new_color) where is_monochrome := by intro p hp exact apply_object_color g obj.pixels new_color p hp -- ✅ ONE LINE -- TRANSLATE V2 · is_monochrome: PROVEN ✅ def translate_object_v2 ... := -- ...match translate_object... is_monochrome := by intro p hp exact apply_object_color g shifted obj.color p hp -- ✅ ONE LINE -- REMAINING SORRYS IN THIS AREA: is_connected := by exact sorry -- IRF-DSL-TRANSLATE-CONN-V2: path lifting via shift_cell bijection is_maximal := by exact sorry -- IRF-DSL-RECOLOR-MAX / TRANSLATE-MAX-V2: erase precondition
ARC DSL SIMULATOR · ABR-841 · IRF-DSL-GRIDMUT-001 CLOSED · γ₁ = 14.134725141734693