we can use one more \exists in assoc-enough
authorHelmut Grohne <helmut@subdivi.de>
Mon, 19 Nov 2012 13:48:24 +0000 (14:48 +0100)
committerHelmut Grohne <helmut@subdivi.de>
Mon, 19 Nov 2012 13:48:24 +0000 (14:48 +0100)
Precond.agda

index 134c359..b30720c 100644 (file)
@@ -23,8 +23,8 @@ open Bidir Carrier deq using (lemma-∉-lookupM-assoc)
 
 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 : FinMapMaybe m Carrier) → assoc (get (enumerate s)) v ≡ just h → ∃ λ u → bff get s v ≡ just u
-assoc-enough get {m} s v h p = u , cong (fmap (flip map s′ ∘ flip lookup) ∘ (fmap (flip union g))) p
+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 {m} s v (h , p) = u , cong (fmap (flip map s′ ∘ flip lookup) ∘ (fmap (flip union g))) p
     where s′ = enumerate s
           g  = fromFunc (denumerate s)
           u  = map (flip lookup (union h g)) s′