Co Pset Raw eq
CoPset.coPsetRaw_eq
Plain-language statement
Two CoPsetRaw trees are equal if they have the same membership function and both are well-formed.
Source project: Iris-Lean
Person-level attribution pending.
Standalone Lean project
A Lean port of the Iris higher-order concurrent separation-logic framework.
Flagship declarations
CoPset.coPsetRaw_eq
Plain-language statement
Two CoPsetRaw trees are equal if they have the same membership function and both are well-formed.
Source project: Iris-Lean
Person-level attribution pending.
FromMathlib.inj_on_of_nodup_map
Plain-language statement
NB. Copied from Mathlib
Source project: Iris-Lean
Person-level attribution pending.
Iris.Algebra.BigOpL.bigOpL_hom_weak
Plain-language statement
Weak monoid homomorphisms distribute over non-empty big ops.
Source project: Iris-Lean
Person-level attribution pending.
Iris.BI.embed_internal_inj
Plain-language statement
⎡·⎤ reflects internal equality.
Source project: Iris-Lean
Person-level attribution pending.
Iris.BI.MonPred.monPred_sbi_emp_valid_exist
Plain-language statement
A monotone predicate P is objective if its value does not depend on the index: P i ⊢ P j for all i j. Equivalently P ⊣⊢ <obj> P. -/ @[rocq_alias Objective] class Objective {I : BiIndex} {PROP : Type _} [BI PROP] (P : MonPred I PROP) : Prop where objective_at : ∀ i j : I.car, P.monPred_at i ⊢ P.monPred_at j namespace MonPred variable {I : BiIndex...
Source project: Iris-Lean
Person-level attribution pending.
Iris.chain_option_some
Plain-language statement
If a chain of Option is ever some, it is the lift a chain by some.
Source project: Iris-Lean
Person-level attribution pending.
Project index
Showing 8 of 13 additional declarations. Use project search for the complete index.
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.
Source project: Iris-Lean
Person-level attribution pending.
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.
Source project: Iris-Lean
Person-level attribution pending.
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...
Source project: Iris-Lean
Person-level attribution pending.
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)...
Source project: Iris-Lean
Person-level attribution pending.
Iris.HeapLang.State.initHeap_self
Plain-language statement
Writing back a cell's current contents leaves the state unchanged.
Source project: Iris-Lean
Person-level attribution pending.
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.
Source project: Iris-Lean
Person-level attribution pending.
Iris.IProp.unfoldi_unit
Plain-language statement
unfoldi preserves unit structure
Source project: Iris-Lean
Person-level attribution pending.
Iris.ProgramLogic.Language.erasedStep_pureSteps
Plain-language statement
Let t₂ be a thread pool such that t₁ under state σ₁ makes a (single) step to threadpool t₂ and state σ₂. Let thread pools t₁ and t₃ be such that each thread in t₁ makes (zero or more) pure steps to the corresponding thread in t₃. In this situation, either the step from t₁ to t₂ corresponds to one of the pure steps between t₁ and `t...
Source project: Iris-Lean
Person-level attribution pending.