Tweak signature of 'forget' to simplify proofs
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
@@ -185,7 +185,7 @@ module IterProdIsomorphism where
|
||||
narrow₂ {fm₁} {fm₂ = (_ ∷ fm'₂ , push k≢ks _) , kvs≡ks@refl} kvs₁⊆kvs₂ k' v' k',v'∈fm'₁
|
||||
with kvs₁⊆kvs₂ k' v' k',v'∈fm'₁
|
||||
... | (v'' , (v'≈v'' , here refl)) rewrite sym (proj₂ fm₁) =
|
||||
⊥-elim (All¬-¬Any k≢ks (forget {m = proj₁ fm₁} k',v'∈fm'₁))
|
||||
⊥-elim (All¬-¬Any k≢ks (forget k',v'∈fm'₁))
|
||||
... | (v'' , (v'≈v'' , there k',v'∈fm'₂)) =
|
||||
(v'' , (v'≈v'' , k',v'∈fm'₂))
|
||||
|
||||
@@ -196,7 +196,7 @@ module IterProdIsomorphism where
|
||||
k,v∈pop⇒k,v∈ : ∀ {k : A} {ks : List A} {k' : A} {v : B} (fm : FiniteMap (k ∷ ks)) →
|
||||
(k' , v) ∈ᵐ pop fm → (¬ k ≡ k' × ((k' , v) ∈ᵐ fm))
|
||||
k,v∈pop⇒k,v∈ {k} {ks} {k'} {v} (m@((k , _) ∷ fm' , push k≢ks uks') , refl) k',v∈fm =
|
||||
( (λ { refl → All¬-¬Any k≢ks (forget {m = (fm' , uks')} k',v∈fm) })
|
||||
( (λ { refl → All¬-¬Any k≢ks (forget k',v∈fm) })
|
||||
, there k',v∈fm
|
||||
)
|
||||
|
||||
@@ -215,11 +215,11 @@ module IterProdIsomorphism where
|
||||
Provenance-union fm₁@(m₁ , ks₁≡ks) fm₂@(m₂ , ks₂≡ks) {k} {v} k,v∈fm₁fm₂
|
||||
with Expr-Provenance-≡ ((` m₁) ∪ (` m₂)) k,v∈fm₁fm₂
|
||||
... | in₁ (single k,v∈m₁) k∉km₂
|
||||
with k∈km₁ ← (forget {m = m₁} k,v∈m₁)
|
||||
with k∈km₁ ← (forget k,v∈m₁)
|
||||
rewrite trans ks₁≡ks (sym ks₂≡ks) =
|
||||
⊥-elim (k∉km₂ k∈km₁)
|
||||
... | in₂ k∉km₁ (single k,v∈m₂)
|
||||
with k∈km₂ ← (forget {m = m₂} k,v∈m₂)
|
||||
with k∈km₂ ← (forget k,v∈m₂)
|
||||
rewrite trans ks₁≡ks (sym ks₂≡ks) =
|
||||
⊥-elim (k∉km₁ k∈km₂)
|
||||
... | bothᵘ {v₁} {v₂} (single k,v₁∈m₁) (single k,v₂∈m₂) =
|
||||
@@ -324,11 +324,9 @@ module IterProdIsomorphism where
|
||||
| from-first-value (fm₁ ⊔ᵐ fm₂)
|
||||
| from-first-value fm₁ | from-first-value fm₂
|
||||
... | (v , k,v∈fm₁fm₂) | (v₁ , k,v₁∈fm₁) | (v₂ , k,v₂∈fm₂) | refl | refl | refl
|
||||
with Expr-Provenance k ((` m₁) ∪ (` m₂)) (forget {m = proj₁ (fm₁ ⊔ᵐ fm₂)} k,v∈fm₁fm₂)
|
||||
... | (_ , (in₁ _ k∉km₂ , _)) = ⊥-elim (k∉km₂ (forget {m = m₂}
|
||||
k,v₂∈fm₂))
|
||||
... | (_ , (in₂ k∉km₁ _ , _)) = ⊥-elim (k∉km₁ (forget {m = m₁}
|
||||
k,v₁∈fm₁))
|
||||
with Expr-Provenance k ((` m₁) ∪ (` m₂)) (forget k,v∈fm₁fm₂)
|
||||
... | (_ , (in₁ _ k∉km₂ , _)) = ⊥-elim (k∉km₂ (forget k,v₂∈fm₂))
|
||||
... | (_ , (in₂ k∉km₁ _ , _)) = ⊥-elim (k∉km₁ (forget k,v₁∈fm₁))
|
||||
... | (v₁⊔v₂ , (bothᵘ {v₁'} {v₂'} (single k,v₁'∈m₁) (single k,v₂'∈m₂) , k,v₁⊔v₂∈m₁m₂))
|
||||
rewrite Map-functional {m = m₁} k,v₁∈fm₁ k,v₁'∈m₁
|
||||
rewrite Map-functional {m = m₂} k,v₂∈fm₂ k,v₂'∈m₂
|
||||
@@ -387,10 +385,10 @@ module IterProdIsomorphism where
|
||||
(v , (IsLattice.≈-refl lB , here refl))
|
||||
... | here refl | there k',v₂∈fm₂' =
|
||||
⊥-elim (All¬-¬Any k≢ks' (subst (k' ∈ˡ_) (proj₂ fm₂')
|
||||
(forget {m = proj₁ fm₂'} k',v₂∈fm₂')))
|
||||
(forget k',v₂∈fm₂')))
|
||||
... | there k',v₁∈fm₁' | here refl =
|
||||
⊥-elim (All¬-¬Any k≢ks' (subst (k' ∈ˡ_) (proj₂ fm₁')
|
||||
(forget {m = proj₁ fm₁'} k',v₁∈fm₁')))
|
||||
(forget k',v₁∈fm₁')))
|
||||
... | there k',v₁∈fm₁' | there k',v₂∈fm₂' =
|
||||
let
|
||||
k',v₁v₂∈fm₁'fm₂' =
|
||||
|
||||
Reference in New Issue
Block a user