Start working on the evaluation operation.
Proving monotonicity is the main hurdle here. Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
@@ -69,9 +69,15 @@ module WithKeys (ks : List A) where
|
||||
km₁≡ks
|
||||
)
|
||||
|
||||
_∈_ : A × B → FiniteMap → Set (a ⊔ℓ b)
|
||||
_∈_ k,v (m₁ , _) = k,v ∈ˡ (proj₁ m₁)
|
||||
|
||||
_∈k_ : A → FiniteMap → Set a
|
||||
_∈k_ k (m₁ , _) = k ∈ˡ (keysᵐ m₁)
|
||||
|
||||
locate : ∀ {k : A} {fm : FiniteMap} → k ∈k fm → Σ B (λ v → (k , v) ∈ fm)
|
||||
locate {k} {fm = (m , _)} k∈kfm = locateᵐ {k} {m} k∈kfm
|
||||
|
||||
_updating_via_ : FiniteMap → List A → (A → B) → FiniteMap
|
||||
_updating_via_ (m₁ , ksm₁≡ks) ks f =
|
||||
( m₁ updatingᵐ ks via f
|
||||
|
||||
@@ -33,7 +33,6 @@ open import Lattice.Map A B _≈₂_ _⊔₂_ _⊓₂_ ≡-dec-A lB
|
||||
using
|
||||
( subset-impl
|
||||
; locate; forget
|
||||
; _∈_
|
||||
; Map-functional
|
||||
; Expr-Provenance
|
||||
; Expr-Provenance-≡
|
||||
@@ -103,7 +102,7 @@ module IterProdIsomorphism where
|
||||
_⊔ⁱᵖ_ {ks} = IP._⊔_ (length ks)
|
||||
|
||||
_∈ᵐ_ : ∀ {ks : List A} → A × B → FiniteMap ks → Set
|
||||
_∈ᵐ_ {ks} k,v fm = k,v ∈ proj₁ fm
|
||||
_∈ᵐ_ {ks} = _∈_ ks
|
||||
|
||||
-- The left inverse is: from (to x) = x
|
||||
from-to-inverseˡ : ∀ {ks : List A} (uks : Unique ks) →
|
||||
@@ -156,7 +155,7 @@ module IterProdIsomorphism where
|
||||
|
||||
private
|
||||
first-key-in-map : ∀ {k : A} {ks : List A} (fm : FiniteMap (k ∷ ks)) →
|
||||
Σ B (λ v → (k , v) ∈ proj₁ fm)
|
||||
Σ B (λ v → (k , v) ∈ᵐ fm)
|
||||
first-key-in-map (((k , v) ∷ _ , _) , refl) = (v , here refl)
|
||||
|
||||
from-first-value : ∀ {k : A} {ks : List A} (fm : FiniteMap (k ∷ ks)) →
|
||||
|
||||
Reference in New Issue
Block a user