Source-pinned research

Research proof index

Search theorem names, mathematical ideas, modules, topics, projects, and role-labelled researchers. Open a result for its complete indexed Lean declaration and source record.

This index contains 19 research declarations. Search 10,000 more complete Mathlib declarations.

1 topic

19 results

Clear filters
Project-declaredLean 4.32.1

Fupd mask frame acc

Iris.fupd_mask_frame_acc

Plain-language statement

A variant of [fupd_mask_frame] that works well for accessors: Tailored to eliminate updates of the form [|={E1,E1∖E2}=> Q] and provides a way to transform the closing view shift instead of letting you prove the same side-conditions twice.

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

Gen Heap init names

Iris.genHeap_init_names

Plain-language statement

Initialize genHeapGS with explicit ghost names. The names of the heap and the meta-data tables are exposed in the conclusion.

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

Ghost map alloc strong

Iris.ghost_map_alloc_strong

Project documentation

Recover fractional ownership for a read-only element. -/ @[rocq_alias ghost_map_elem_unpersist] theorem ghost_map_elem_unpersist (γ : GName) (k : K) (v : V) : ⊢@{IProp GF} (γ ↪◯MAP[k]{.discard} v) ==∗ ∃ q, (γ ↪◯MAP[k]{.own q} v) := by unfold ghost_map_elem iintro H imod iOwn_updateP update_frag_acquire $$ H with ⟨%a, %Heq, G⟩ obtain ⟨q, Heq⟩ := Heq iexist...

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

Wp check Sorted

Iris.HeapLang.Quicksort.wp_checkSorted

Project documentation

Returns a boolean witnessing the sortedness of a HeapLang list. acc is an option of the last value in the list. -/ def checkSorted : Val := hl_val% rec check acc l := match l with | none() => #true | some(x) => let p := !x; let head := fst(p); let tail := snd(p); let ok := (match acc with | none() => #true | some(v) => v ≤ head); ok && check (some(head)...

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

State init Heap self

Iris.HeapLang.State.initHeap_self

Plain-language statement

Writing back a cell's current contents leaves the state unchanged.

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

I Own alloc strong dep

Iris.iOwn_alloc_strong_dep

Plain-language statement

Allocation with a dependent function and a predicate on the ghost name. The predicate P must be satisfied by arbitrarily large naturals.

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record