Download formal/SparseRouter/Deque.lean from Snapkitty/sparse-router-formal: direct link, hf CLI and curl.
- Browser
- Download file 1.37 kB
-
https://huggingface.co/Snapkitty/sparse-router-formal/resolve/main/formal/SparseRouter/Deque.lean
- Command line
-
hf download hf://Snapkitty/sparse-router-formal/formal/SparseRouter/Deque.lean
-
curl -L -o Deque.lean https://huggingface.co/Snapkitty/sparse-router-formal/resolve/main/formal/SparseRouter/Deque.lean
1.37 kB
| -- SPDX-License-Identifier: LicenseRef-Sovereign-Leviathan-SL-AGPL3-001 | |
| -- Copyright (C) 2026 SNAPKITTYWEST / Sovereign Kernel Project | |
| -- CLONE_GATE: sparse-router-formal::formal::deque | |
| import SparseRouter.Types | |
| namespace SparseRouter.Deque | |
| open SparseRouter | |
| def push (d : WorkDeque) (t : Task) (h : d.count < DequeCapacity) : WorkDeque := | |
| { tasks := d.tasks ++ [t] | |
| count := d.count + 1 | |
| inv_count := by simp [List.length_append]; omega | |
| inv_cap := by omega } | |
| def pop (d : WorkDeque) (h : d.count > 0) : Task × WorkDeque := | |
| let last := d.tasks.getLast (by intro hempty; simp [hempty] at h; exact absurd d.inv_count (by omega)) | |
| let rest := d.tasks.dropLast | |
| (last, | |
| { tasks := rest | |
| count := d.count - 1 | |
| inv_count := by | |
| simp [List.length_dropLast, d.inv_count]; omega | |
| inv_cap := by omega }) | |
| theorem push_increases_count (d : WorkDeque) (t : Task) (h : d.count < DequeCapacity) : | |
| (push d t h).count = d.count + 1 := by | |
| simp [push] | |
| theorem pop_decreases_count (d : WorkDeque) (h : d.count > 0) : | |
| (pop d h).2.count = d.count - 1 := by | |
| simp [pop] | |
| theorem push_pop_identity (d : WorkDeque) (t : Task) | |
| (hcap : d.count < DequeCapacity) : | |
| let d' := push d t hcap | |
| let hpos : d'.count > 0 := by simp [push]; omega | |
| (pop d' hpos).1 = t := by | |
| simp [push, pop, List.getLast_append] | |
| end SparseRouter.Deque | |