import SnapKitty.Liquid.Core -- Thermal Window type with refinement data ThermalWindow = TW { twLo :: Int , twHi :: Int , twSpan :: Int } -- Smart constructor enforces lo < hi at construction time -- This is what the Lean gate checks mkWindow :: Int -> Int -> ThermalWindow mkWindow lo hi | lo < hi = TW lo hi (hi - lo) | otherwise = error "Invalid window: lo >= hi" -- The theorem the harness verifies: -- theorem_window_order: forall w, twLo w < twHi w -- Status: PROVED (smart constructor guarantees it)