Adjust behavior of eval to not require constant 'k in vars' threading
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
@@ -12,7 +12,7 @@ module Lattice.FiniteMap {a b : Level} {A : Set a} {B : Set b}
|
||||
|
||||
open IsLattice lB using () renaming (_≼_ to _≼₂_)
|
||||
open import Lattice.Map ≡-dec-A lB as Map
|
||||
using (Map; ⊔-equal-keys; ⊓-equal-keys; ∈k-dec)
|
||||
using (Map; ⊔-equal-keys; ⊓-equal-keys)
|
||||
renaming
|
||||
( _≈_ to _≈ᵐ_
|
||||
; _⊔_ to _⊔ᵐ_
|
||||
@@ -37,6 +37,7 @@ open import Lattice.Map ≡-dec-A lB as Map
|
||||
; updating-via-keys-≡ to updatingᵐ-via-keys-≡
|
||||
; f'-Monotonic to f'-Monotonicᵐ
|
||||
; _≼_ to _≼ᵐ_
|
||||
; ∈k-dec to ∈k-decᵐ
|
||||
)
|
||||
open import Data.List.Membership.Propositional using () renaming (_∈_ to _∈ˡ_)
|
||||
open import Data.Product using (_×_; _,_; Σ; proj₁ ; proj₂)
|
||||
@@ -82,6 +83,8 @@ module WithKeys (ks : List A) where
|
||||
_∈k_ : A → FiniteMap → Set a
|
||||
_∈k_ k (m₁ , _) = k ∈ˡ (keysᵐ m₁)
|
||||
|
||||
∈k-dec = ∈k-decᵐ
|
||||
|
||||
locate : ∀ {k : A} {fm : FiniteMap} → k ∈k fm → Σ B (λ v → (k , v) ∈ fm)
|
||||
locate {k} {fm = (m , _)} k∈kfm = locateᵐ {k} {m} k∈kfm
|
||||
|
||||
@@ -182,7 +185,7 @@ module WithKeys (ks : List A) where
|
||||
fm₁ ≼ fm₂ → Pairwise _≼₂_ (fm₁ [ ks' ]) (fm₂ [ ks' ])
|
||||
m₁≼m₂⇒m₁[ks]≼m₂[ks] _ _ [] _ = []
|
||||
m₁≼m₂⇒m₁[ks]≼m₂[ks] fm₁@(m₁ , km₁≡ks) fm₂@(m₂ , km₂≡ks) (k ∷ ks'') m₁≼m₂
|
||||
with ∈k-dec k (proj₁ m₁) | ∈k-dec k (proj₁ m₂)
|
||||
with ∈k-decᵐ k (proj₁ m₁) | ∈k-decᵐ k (proj₁ m₂)
|
||||
... | yes k∈km₁ | yes k∈km₂ =
|
||||
let
|
||||
(v₁ , k,v₁∈m₁) = locateᵐ {m = m₁} k∈km₁
|
||||
|
||||
Reference in New Issue
Block a user