All proofs
Project-declaredLean 4.32.1 · null

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...

Exact Lean statement

@[rocq_alias ghost_map_alloc_strong]
theorem ghost_map_alloc_strong [DecidableEq K] (P : GName → Prop) (m : H V) :
  (∀ N, ∃ k, N ≤ k ∧ P k) →
  ⊢@{IProp GF} |==> ∃ γ, ⌜P γ⌝ ∗ (γ ↪●MAP m) ∗ [∗map] k ↦ v ∈ m, γ ↪◯MAP[k] v

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
@[rocq_alias ghost_map_alloc_strong]theorem ghost_map_alloc_strong [DecidableEq K] (P : GName  Prop) (m : H V) :  ( N,  k, N  k  P k)   @{IProp GF} |==>  γ, ⌜P γ⌝ ∗ (γ ↪●MAP m) ∗ [∗map] k  v  m, γ ↪◯MAP[k] v := by  unfold ghost_map_elem ghost_map_auth  iintro %Hinf  imod iOwn_alloc_strong (E := GhostMapG.elem)    (Auth (DFrac.own 1) (V := Agree (DiscreteO V)) (∅ : H _)) P Hinf with %γ, %HP, G  · simpa only [auth_valid_iff] using DFrac.valid_own_one  · iexists γ; iframe %HP    iapply BIUpdate.mono <| sep_mono_right <| bigOpM_iOwn_entail γ _ m    iapply BIUpdate.mono <| iOwn_op.mp    iapply iOwn_update $$ G    refine Update.equiv_right ?_      (update_big_alloc _ (Std.PartialMap.map (fun x  toAgree x) m) _        (disjoint_empty_right _) DFrac.valid_own_one        (all_map fun _ _ => Agree.toAgree_valid))    refine CMRA.op_eqv ?_ (BigOpM.bigOpM_map_eqv _ _ _)    exact OFE.NonExpansive.eqv (OFE.Equiv.of_eq union_empty_right)
Project
Iris-Lean
License
Apache-2.0
Commit
37f53e0ac065
Source
Iris/Iris/Instances/Lib/GhostMap.lean:200-218

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.32.1

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.

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

Inj on of nodup map

FromMathlib.inj_on_of_nodup_map

Plain-language statement

NB. Copied from Mathlib

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.1

Big Op L hom weak

Iris.Algebra.BigOpL.bigOpL_hom_weak

Plain-language statement

Weak monoid homomorphisms distribute over non-empty big ops.

separation logicprogram logicsemantics

Source project: Iris-Lean

Person-level attribution pending.

View proof record