summaryrefslogtreecommitdiff
path: root/Precond.agda
diff options
context:
space:
mode:
authorHelmut Grohne <grohne@cs.uni-bonn.de>2013-12-17 08:22:12 +0100
committerHelmut Grohne <grohne@cs.uni-bonn.de>2013-12-17 08:35:23 +0100
commit066861f9cdde4ded6c5442508bef1a27576c68d7 (patch)
tree3e199fdfd1cb746d3c637b5b2817ec53b17a6d67 /Precond.agda
parent2c37e0c2f32b4c6b5c121827a4abddf7fc1dd7e0 (diff)
downloadbidiragda-066861f9cdde4ded6c5442508bef1a27576c68d7.tar.gz
update bff implementation to use delete
In the presence of shape-changing updates, bff needs to shrink one of the mappings before unifying them. As long the shape does not change, the union becomes a disjoint union. With this insight we can adapt the proof of theorem-1 using the adapted lemma-disjoint-union. Unfortunately theorem-2 requires more work and assoc-enough becomes non-trivial due to the introduction of mapMV.
Diffstat (limited to 'Precond.agda')
-rw-r--r--Precond.agda2
1 files changed, 2 insertions, 0 deletions
diff --git a/Precond.agda b/Precond.agda
index e4699dc..16e452b 100644
--- a/Precond.agda
+++ b/Precond.agda
@@ -28,11 +28,13 @@ import Bidir
open BFF.VecBFF Carrier deq using (get-type ; assoc ; enumerate ; denumerate ; bff)
+{-
assoc-enough : {getlen : ℕ → ℕ} (get : get-type getlen) → {m : ℕ} → (s : Vec Carrier m) → (v : Vec Carrier (getlen m)) → ∃ (λ h → assoc (get (enumerate s)) v ≡ just h) → ∃ λ u → bff get s v ≡ just u
assoc-enough get s v (h , p) = u , cong (_<$>_ (flip map s′ ∘ flip lookup) ∘ (_<$>_ (flip union g))) p
where s′ = enumerate s
g = fromFunc (denumerate s)
u = map (flip lookup (union h g)) s′
+-}
data All-different {A : Set} : List A → Set where
different-[] : All-different []